Hello community, here is the log from the commit of package vsftpd for openSUSE:Factory checked in at 2015-04-22 01:13:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vsftpd (Old) and /work/SRC/openSUSE:Factory/.vsftpd.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vsftpd" Changes: -------- --- /work/SRC/openSUSE:Factory/vsftpd/vsftpd.changes 2015-04-07 09:28:56.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.vsftpd.new/vsftpd.changes 2015-04-22 01:13:42.000000000 +0200 @@ -1,0 +2,6 @@ +Fri Apr 17 16:35:14 UTC 2015 - [email protected] + +- Fix hide_file option wrt bnc#927612: + * vsftpd-path-normalize.patch + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vsftpd-path-normalize.patch ++++++ --- /var/tmp/diff_new_pack.HHNsGW/_old 2015-04-22 01:13:43.000000000 +0200 +++ /var/tmp/diff_new_pack.HHNsGW/_new 2015-04-22 01:13:43.000000000 +0200 @@ -116,11 +116,48 @@ if (do_stat) { /* 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; 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_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) + {
