You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-p2p/ctorrent/files/ctorrent-3.3.2-empty-path-c...

39 lines
838 B

rTorrent sometimes creates invalid torrents which has empty path components.
the bitorrent spec allows for "" strings, but they make no sense in paths.
so instead of always adding a / in between, skip them. ugh.
for example:
dict {
'info' => dict {
'name' => str = "some dir" (len = 8)
'files' => list [
dict {
'length' => int = 12345567
'path' => list [
str = "" (len = 0)
str = "foo.bin" (len = 7)
]
}
...
]
...
}
...
}
ctorrent will then try to fetch the file "/some dir/foo.bin" instead of
"some dir/foo.bin" (relative to $PWD).
--- a/bencode.cpp
+++ b/bencode.cpp
@@ -258,7 +258,8 @@
n -= r;
if( 'e' == *pb ) break;
if( pathname >= endmax ) return 0;
- *pathname++ = PATH_SP;
+ if (q)
+ *pathname++ = PATH_SP;
}
*pathname = '\0';
return (pb - b + 1);