SHA256
1
0
forked from pool/vsftpd

Accepting request 297784 from network

- Fix hide_file option wrt bnc#927612:
  * vsftpd-path-normalize.patch

OBS-URL: https://build.opensuse.org/request/show/297784
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/vsftpd?expand=0&rev=50
This commit is contained in:
Dominique Leuenberger 2015-04-21 23:13:40 +00:00 committed by Git OBS Bridge
commit d1cb551b4c
2 changed files with 46 additions and 3 deletions

View File

@ -116,11 +116,48 @@ Index: vsftpd-3.0.2/ls.c
if (do_stat) if (do_stat)
{ {
/* lstat() the file. Of course there's a race condition - the /* lstat() the file. Of course there's a race condition - the
@@ -249,6 +249,7 @@ vsf_filename_passes_filter(const struct @@ -239,6 +239,7 @@ vsf_filename_passes_filter(const struct
* for /a/?/c will not.
*/
struct mystr filter_remain_str = INIT_MYSTR;
+ struct mystr basic_name_str = INIT_MYSTR;
struct mystr name_remain_str = INIT_MYSTR;
struct mystr temp_str = INIT_MYSTR;
struct mystr brace_list_str = INIT_MYSTR;
@@ -249,27 +250,29 @@ vsf_filename_passes_filter(const struct
int matched = 0; int matched = 0;
str_copy(&filter_remain_str, p_filter_str); str_copy(&filter_remain_str, p_filter_str);
+ str_normalize_filepath(p_filename_str); + str_copy(&basic_name_str, p_filename_str);
+ str_normalize_filepath(&basic_name_str);
if (!str_isempty (&filter_remain_str) && !str_isempty(p_filename_str)) { - if (!str_isempty (&filter_remain_str) && !str_isempty(p_filename_str)) {
+ if (!str_isempty (&filter_remain_str) && !str_isempty(&basic_name_str)) {
if (str_get_char_at(p_filter_str, 0) == '/') { if (str_get_char_at(p_filter_str, 0) == '/') {
- if (str_get_char_at(p_filename_str, 0) != '/') {
+ if (str_get_char_at(&basic_name_str, 0) != '/') {
str_getcwd (&name_remain_str);
if (str_getlen(&name_remain_str) > 1) /* cwd != root dir */
str_append_char (&name_remain_str, '/');
- str_append_str (&name_remain_str, p_filename_str);
+ str_append_str (&name_remain_str, &basic_name_str);
}
else
- str_copy (&name_remain_str, p_filename_str);
+ str_copy (&name_remain_str, &basic_name_str);
} else {
if (str_get_char_at(p_filter_str, 0) != '{')
- str_basename (&name_remain_str, p_filename_str);
+ str_basename (&name_remain_str, &basic_name_str);
else
- str_copy (&name_remain_str, p_filename_str);
+ str_copy (&name_remain_str, &basic_name_str);
}
} else
- str_copy(&name_remain_str, p_filename_str);
+ str_copy(&name_remain_str, &basic_name_str);
while (!str_isempty(&filter_remain_str) && *iters < VSFTP_MATCHITERS_MAX)
{

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Fri Apr 17 16:35:14 UTC 2015 - tchvatal@suse.com
- Fix hide_file option wrt bnc#927612:
* vsftpd-path-normalize.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Sun Apr 5 10:25:50 UTC 2015 - tchvatal@suse.com Sun Apr 5 10:25:50 UTC 2015 - tchvatal@suse.com