aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/archive/zip_plugin.c5
-rw-r--r--src/update.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/src/archive/zip_plugin.c b/src/archive/zip_plugin.c
index 6ef53a625..76eec229d 100644
--- a/src/archive/zip_plugin.c
+++ b/src/archive/zip_plugin.c
@@ -56,7 +56,10 @@ zip_open(char * pathname)
}
while (zzip_dir_read(context->dir, &dirent)) {
- context->list = g_slist_prepend( context->list, xstrdup(dirent.d_name));
+ //add only files
+ if (dirent.st_size > 0) {
+ context->list = g_slist_prepend( context->list, xstrdup(dirent.d_name));
+ }
}
return (struct archive_file *)context;
diff --git a/src/update.c b/src/update.c
index f51ccc7b6..776fa050b 100644
--- a/src/update.c
+++ b/src/update.c
@@ -296,6 +296,10 @@ update_archive_tree(struct directory *directory, char *name)
//create directories first
update_archive_tree(subdir, tmp+1);
} else {
+ if (strlen(name) == 0) {
+ g_warning("archive returned directory only\n");
+ return;
+ }
//add file
song = songvec_find(&directory->songs, name);
if (song == NULL) {