Fix bug in previous that can cause sporadic false directories to be listed.
diff --git a/src/zipcmp.c b/src/zipcmp.c
index d63f1c3..ecfe24d 100644
--- a/src/zipcmp.c
+++ b/src/zipcmp.c
@@ -364,11 +364,15 @@
if (ent->fts_info == FTS_D) {
char *dir_name;
- if (ent->fts_path[prefix_length] == '\0') {
- continue;
+ if (ent->fts_path[prefix_length - 1] == '\0') {
+ break;
}
dir_name = malloc(strlen(ent->fts_path + prefix_length) + 2);
+ if (dir_name == NULL) {
+ fprintf(stderr, "%s: malloc failure\n", progname);
+ exit(1);
+ }
sprintf(dir_name, "%s/", ent->fts_path + prefix_length);
a->entry[a->nentry].name = dir_name;
a->entry[a->nentry].size = 0;