ret = read_fec_header(buf, len, &h);
if (ret <= 0)
return ret;
- if (h.slice_bytes > fn->bufsize)
+ if (!h.slice_bytes || h.slice_bytes > fn->bufsize)
return -E_BAD_SLICE_SIZE;
if (h.slice_num > h.slices_per_group)
return -E_BAD_SLICE_NUM;
clear_group(fg);
free(fn->buf);
fn->buf = NULL;
+ fec_free(pfd->fec);
free(fn->private_data);
fn->private_data = NULL;
}