RC4: Allocate 8 extra bytes for send buffer.
[paraslash.git] / vss.c
diff --git a/vss.c b/vss.c
index 1a038f060bd1f0e2ecfd842e9f08fd7f704f70e2..bfb0f0a175dc5da0e79bad5ab0497d6f1faff2f2 100644 (file)
--- a/vss.c
+++ b/vss.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2009 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2010 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -290,19 +290,20 @@ static int setup_next_fec_group(struct fec_client *fc, struct vss_task *vsst)
                g->num = 0;
                g->start = *now;
        } else {
+               struct timeval tmp;
+               if (g->first_chunk + g->num_chunks >= mmd->afd.afhi.chunks_total)
+                       return 0;
                /*
                 * Start and duration of this group depend only on the previous
                 * group. Compute the new group start as g->start += g->duration.
                 */
-               struct timeval tmp = g->start;
+               tmp = g->start;
                tv_add(&tmp, &g->duration, &g->start);
                k = fc->fcp->data_slices_per_group + fc->num_extra_slices;
                set_group_timing(fc, g);
                g->first_chunk += g->num_chunks;
                g->num++;
        }
-       if (g->first_chunk >= mmd->afd.afhi.chunks_total)
-               return 0;
        if (need_audio_header(fc, vsst)) {
                ret = num_slices(vsst->header_len, fc, &g->num_header_slices);
                if (ret < 0)