server responds to flist
[reposerve] / src / proto.c
index 9d548a6..60e22b8 100644 (file)
@@ -57,7 +57,7 @@ int flist_add(struct flist *flist, const char *fname, int contents)
                datalen += fent.size;
        }
 
-       if(flist->flist->num_files >= flist->max_files) {
+       if(!flist->flist || flist->flist->num_files >= flist->max_files) {
                struct proto_flist *tmp;
                int newsz = flist->max_files ? flist->max_files << 1 : 32;
 
@@ -65,6 +65,9 @@ int flist_add(struct flist *flist, const char *fname, int contents)
                        fprintf(stderr, "flist_add: failed to resize file list to %d entries\n", newsz);
                        return -1;
                }
+               if(!flist->flist) {
+                       tmp->num_files = 0;
+               }
                flist->flist = tmp;
                flist->max_files = newsz;
        }