Fix the limits for CELT_SET_END_BAND_REQUEST.
authorTimothy B. Terriberry <tterribe@xiph.org>
Thu, 30 Dec 2010 16:56:49 +0000 (08:56 -0800)
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Thu, 30 Dec 2010 17:47:28 +0000 (12:47 -0500)
The valid bands range from [start,end) everywhere, with start<end.
Therefore end should never be 0, and should be allowed to extend
 all the way to mode->nbEBands.
This patch does _not_ enforce that start<end, and it does _not_
 handle clearing oldBandE[] when the valid range changes, which
 are separate issues.

libcelt/celt.c

index dcce270..03bd83a 100644 (file)
@@ -1367,7 +1367,7 @@ int celt_encoder_ctl(CELTEncoder * restrict st, int request, ...)
       case CELT_SET_END_BAND_REQUEST:
       {
          celt_int32 value = va_arg(ap, celt_int32);
-         if (value<0 || value>=st->mode->nbEBands)
+         if (value<1 || value>st->mode->nbEBands)
             goto bad_arg;
          st->end = value;
       }