]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - vss.c
play: Avoid gcc warning when compiling without readline.
[paraslash.git] / vss.c
diff --git a/vss.c b/vss.c
index 737b77ac29e546fcdbf808dbd884e5dcf5b291e5..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;
@@ -689,9 +690,11 @@ void vss_del_fec_client(struct fec_client *fc)
 
        list_del(&fc->node);
        free(fc->enc_buf);
-       for (i = 0; i < fc_num_data_slices(fc); i++)
-               free(fc->src_data[i]);
-       free(fc->src_data);
+       if (fc->src_data) {
+               for (i = 0; i < fc_num_data_slices(fc); i++)
+                       free(fc->src_data[i]);
+               free(fc->src_data);
+       }
        fec_free(fc->parms);
        free(fc);
 }
@@ -998,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));