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;