From d3efa4f48d28ccc4c8f0238178eeb0d2641d6dfb Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Mon, 9 Mar 2009 21:41:36 +0100 Subject: [PATCH] vss: Handle errors in setup_next_fec_group() properly. setup_next_fec_group() might return a negative value. --- vss.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vss.c b/vss.c index a8486bbd..aa76ca2e 100644 --- a/vss.c +++ b/vss.c @@ -340,8 +340,9 @@ static int compute_next_fec_slice(struct fec_client *fc, struct vss_task *vsst) { if (fc->first_stream_chunk < 0 || fc->current_slice_num == fc->fcp->slices_per_group + fc->num_extra_slices) { - if (!setup_next_fec_group(fc, vsst)) - return 0; + int ret = setup_next_fec_group(fc, vsst); + if (ret <= 0) + return ret; } write_fec_header(fc, vsst); fec_encode(fc->parms, fc->src_data, fc->enc_buf + FEC_HEADER_SIZE, @@ -827,7 +828,7 @@ static void vss_send(struct vss_task *vsst) list_for_each_entry_safe(fc, tmp_fc, &fec_client_list, node) { if (!next_slice_is_due(fc, NULL)) continue; - if (!compute_next_fec_slice(fc, vsst)) + if (compute_next_fec_slice(fc, vsst) <= 0) continue; PARA_DEBUG_LOG("sending %d:%d (%u bytes)\n", fc->group.num, fc->current_slice_num, fc->fcp->max_slice_bytes); -- 2.39.5