]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - fecdec_filter.c
Remove an overambitious sanity check in the fecdec filter.
[paraslash.git] / fecdec_filter.c
index 817e4c66c7bc96a2e59b5b7230d8b490633dbbb6..daecee7e5fc50bcb61f8cad8c481efb4e006a2b3 100644 (file)
@@ -117,10 +117,15 @@ static int find_group(struct fec_header *h,
        FOR_EACH_FECDEC_GROUP(fg, pfd) {
                if (fg->h.group_num != h->group_num)
                        continue;
+               if (fg->num_received_slices == 0)
+                       goto success;
                if (fg->h.slices_per_group != h->slices_per_group)
-                       continue;
+                       return -E_BAD_FEC_HEADER;
                if (fg->h.data_slices_per_group != h->data_slices_per_group)
-                       continue;
+                       return -E_BAD_FEC_HEADER;
+               if (fg->h.group_bytes != h->group_bytes)
+                       return -E_BAD_FEC_HEADER;
+success:
                *result = fg;
                return 1;
        }
@@ -358,7 +363,7 @@ static ssize_t fecdec(char *buf, size_t len, struct filter_node *fn)
        ret = read_fec_header(buf, len, &h);
        if (ret <= 0)
                return ret;
-       if (!h.slice_bytes || h.slice_bytes > fn->bufsize)
+       if (!h.slice_bytes)
                return -E_BAD_SLICE_SIZE;
        if (h.slice_num > h.slices_per_group)
                return -E_BAD_SLICE_NUM;