back-port file name sanitization patch to RC_1_1

This commit is contained in:
arvidn 2017-10-01 04:32:10 +02:00 committed by Arvid Norberg
parent c8d51689bb
commit 3255375095
1 changed files with 13 additions and 3 deletions

View File

@ -187,9 +187,9 @@ namespace libtorrent
if (element_len == 1 && element[0] == '.') return;
#ifdef TORRENT_WINDOWS
#define TORRENT_SEPARATOR "\\"
#define TORRENT_SEPARATOR '\\'
#else
#define TORRENT_SEPARATOR "/"
#define TORRENT_SEPARATOR '/'
#endif
path.reserve(path.size() + element_len + 2);
int added_separator = 0;
@ -417,6 +417,11 @@ namespace libtorrent
filename = p.string_ptr() + info_ptr_diff;
filename_len = p.string_length();
while (filename_len > 0 && filename[0] == TORRENT_SEPARATOR)
{
filename += 1;
filename_len -= 1;
}
sanitize_append_path_element(path, p.string_ptr(), p.string_length());
}
else
@ -438,6 +443,11 @@ namespace libtorrent
filename = e.string_ptr() + info_ptr_diff;
filename_len = e.string_length();
}
while (filename_len > 0 && filename[0] == TORRENT_SEPARATOR)
{
filename += 1;
filename_len -= 1;
}
sanitize_append_path_element(path, e.string_ptr(), e.string_length());
}
}
@ -659,7 +669,7 @@ namespace libtorrent
{
p = parent_path(p);
// we don't want trailing slashes here
TORRENT_ASSERT(p[p.size() - 1] == *TORRENT_SEPARATOR);
TORRENT_ASSERT(p[p.size() - 1] == TORRENT_SEPARATOR);
p.resize(p.size() - 1);
files.insert(p);
}