summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn L McGrath2001-10-13 06:53:34 +0000
committerGlenn L McGrath2001-10-13 06:53:34 +0000
commit527880e5cf0a76a53239bfc1da938db5b0d83b36 (patch)
tree234e65e061c643cad23a67aa7b90c106bd8e197a
parentb5937d3eea72db7638060f0a612dfad1fc6b96cd (diff)
downloadbusybox-527880e5cf0a76a53239bfc1da938db5b0d83b36.zip
busybox-527880e5cf0a76a53239bfc1da938db5b0d83b36.tar.gz
match exclude/include names with trailing '/'
-rw-r--r--libbb/unarchive.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libbb/unarchive.c b/libbb/unarchive.c
index 3bf79d6..37ab67a 100644
--- a/libbb/unarchive.c
+++ b/libbb/unarchive.c
@@ -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));