match exclude/include names with trailing '/'
authorGlenn L McGrath <bug1@ihug.co.nz>
Sat, 13 Oct 2001 06:53:34 +0000 (06:53 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Sat, 13 Oct 2001 06:53:34 +0000 (06:53 -0000)
libbb/unarchive.c

index 3bf79d646ad72582eccd03ae566b4361e7d9f303..37ab67aff59e2951d4c6d29005b9e48b8242bb81 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <stdio.h>
 #include <errno.h>
+#include <fnmatch.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -242,7 +243,7 @@ char *unarchive(FILE *src_stream, FILE *out_stream, file_header_t *(*get_headers
                if (extract_names != NULL) {
                        int found_flag = FALSE;
                        for(i = 0; extract_names[i] != 0; i++) {
-                               if (fnmatch(extract_names[i], file_entry->name, 0) == 0) {
+                               if (fnmatch(extract_names[i], file_entry->name, FNM_LEADING_DIR) == 0) {
                                        found_flag = TRUE;
                                        break;
                                }
@@ -506,8 +507,8 @@ file_header_t *get_header_tar(FILE *tar_stream)
                } formated;
        } tar;
        file_header_t *tar_entry = NULL;
-       long i;
        long sum = 0;
+       long i;
 
        if (archive_offset % 512 != 0) {
                seek_sub_file(tar_stream, 512 - (archive_offset % 512));