diff -up vsftpd-2.0.5/ls.c.fix_qm vsftpd-2.0.5/ls.c
--- vsftpd-2.0.5/ls.c.fix_qm 2012-03-02 12:59:01.303249397 +0100
+++ vsftpd-2.0.5/ls.c 2012-03-02 13:00:03.792145117 +0100
@@ -454,7 +454,8 @@ vsf_filename_passes_filter(const struct
must_match_at_current_pos = 0;
}
} while (locate_result.found &&
- str_getlen(&name_remain_str) > 0 && last_token != '*');
+ str_getlen(&name_remain_str) > 0 &&
+ last_token != '*' && last_token != '?');
/* Any incoming string left means no match unless we ended on the correct
* type of wildcard.