If an error occurs in initialize_fec_client() we free the FEC parameter
structure but do not invalidate it. It's both easier and safer to
free this struct just before allocating it.
rs = fc->fcp->slices_per_group - fc->fcp->data_slices_per_group;
ret = num_slices(vsst->header_len, fc->mps - FEC_HEADER_SIZE, rs);
if (ret < 0)
- goto err;
+ return ret;
hs = ret;
ret = num_slices(mmd->afd.max_chunk_size, fc->mps - FEC_HEADER_SIZE, rs);
if (ret < 0)
- goto err;
+ return ret;
ds = ret;
k = hs + ds;
if (k < fc->fcp->data_slices_per_group)
fc->stream_start = *now;
fc->first_stream_chunk = mmd->current_chunk;
return 1;
-err:
- fec_free(fc->parms);
- return ret;
}
static void compute_group_size(struct vss_task *vsst, struct fec_group *g,