]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - vss.c
vss: Avoid double free on exit.
[paraslash.git] / vss.c
diff --git a/vss.c b/vss.c
index 9857d92dcd7e0e32721aaca15a86fc27fc061292..4b1bfc78986321d1df9335517dd00a87cda0dd87 100644 (file)
--- a/vss.c
+++ b/vss.c
@@ -416,7 +416,8 @@ static int compute_group_size(struct vss_task *vsst, struct fec_group *g,
                g->bytes += len;
                g->num_chunks++;
        }
-       assert(g->num_chunks);
+       if (g->num_chunks == 0)
+               return -E_EOF;
        PARA_DEBUG_LOG("group #%u: %u chunks, %u bytes total\n", g->num,
                g->num_chunks, g->bytes);
        return 1;
@@ -1000,6 +1001,7 @@ static void recv_afs_result(struct vss_task *vsst, fd_set *rfds)
        return;
 err:
        free(mmd->afd.afhi.chunk_table);
+       mmd->afd.afhi.chunk_table = NULL;
        if (passed_fd >= 0)
                close(passed_fd);
        PARA_ERROR_LOG("%s\n", para_strerror(-ret));