Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package faad2 for openSUSE:Factory checked 
in at 2026-07-28 17:49:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/faad2 (Old)
 and      /work/SRC/openSUSE:Factory/.faad2.new.2004 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "faad2"

Tue Jul 28 17:49:21 2026 rev:6 rq:1367974 version:2.11.2.git18

Changes:
--------
--- /work/SRC/openSUSE:Factory/faad2/faad2.changes      2026-06-28 
21:05:09.487292257 +0200
+++ /work/SRC/openSUSE:Factory/.faad2.new.2004/faad2.changes    2026-07-28 
17:49:58.227815965 +0200
@@ -1,0 +2,11 @@
+Wed Jul 22 17:44:42 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 2.11.2.git18:
+  * fix signed overflow in fixed-point sample rounding before
+    saturation
+  * prevent num_bits_left underflow in ps_data extension parsing
+  * cap escape length in huffman_spectral_data_2
+  * fix signed overflow in estimate_current_envelope energy sum
+  * fix ssr_gc_function signature mismatch in ssr gain control
+
+-------------------------------------------------------------------

Old:
----
  faad2-2.11.2.git13.obscpio

New:
----
  faad2-2.11.2.git18.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ faad2.spec ++++++
--- /var/tmp/diff_new_pack.AB2mU2/_old  2026-07-28 17:50:00.383891356 +0200
+++ /var/tmp/diff_new_pack.AB2mU2/_new  2026-07-28 17:50:00.387891496 +0200
@@ -24,7 +24,7 @@
 %define so_name     libfaad%so_version
 %define so_name_drm libfaad_drm%so_version
 Name:           faad2
-Version:        2.11.2.git13
+Version:        2.11.2.git18
 Release:        0
 Summary:        Freeware Advanced Audio (AAC) Decoder including SBR decoding
 License:        GPL-2.0-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.AB2mU2/_old  2026-07-28 17:50:00.455893874 +0200
+++ /var/tmp/diff_new_pack.AB2mU2/_new  2026-07-28 17:50:00.459894013 +0200
@@ -1,7 +1,7 @@
 <services>
        <service name="obs_scm" mode="manual">
                <param name="filename">faad2</param>
-               <param 
name="revision">e87c7410155becdd05123d4bb532d7c7d56fca04</param>
+               <param 
name="revision">b743105de73f31f214f824e72d2001a3736da768</param>
                <param name="scm">git</param>
                <param name="submodules">disable</param>
                <param name="url">https://github.com/knik0/faad2.git</param>

++++++ faad2-2.11.2.git13.obscpio -> faad2-2.11.2.git18.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faad2-2.11.2.git13/libfaad/huffman.c 
new/faad2-2.11.2.git18/libfaad/huffman.c
--- old/faad2-2.11.2.git13/libfaad/huffman.c    2026-06-26 00:25:39.000000000 
+0200
+++ new/faad2-2.11.2.git18/libfaad/huffman.c    2026-07-18 09:38:09.000000000 
+0200
@@ -561,7 +561,7 @@
 
                 neg = (sp[k] < 0) ? 1 : 0;
 
-                for (i = 4; ; i++)
+                for (i = 4; i < 16; i++)
                 {
                     uint8_t b;
                     if (get1bit_hcr(ld, &b))
@@ -570,7 +570,7 @@
                         break;
                 }
 
-                if (i > 32)
+                if (i >= 16)
                     return -1;
 
                 if (getbits_hcr(ld, i, &off))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faad2-2.11.2.git13/libfaad/lt_predict.c 
new/faad2-2.11.2.git18/libfaad/lt_predict.c
--- old/faad2-2.11.2.git13/libfaad/lt_predict.c 2026-06-26 00:25:39.000000000 
+0200
+++ new/faad2-2.11.2.git18/libfaad/lt_predict.c 2026-07-18 09:38:09.000000000 
+0200
@@ -137,11 +137,13 @@
 {
     if (sig_in >= 0)
     {
-        sig_in += (1 << (REAL_BITS-1));
+        if (sig_in <= 0x7FFFFFFF - (1 << (REAL_BITS-1)))
+            sig_in += (1 << (REAL_BITS-1));
         if (sig_in >= REAL_CONST(32768))
             return 32767;
     } else {
-        sig_in += -(1 << (REAL_BITS-1));
+        if (sig_in >= (int32_t)0x80000000 + (1 << (REAL_BITS-1)))
+            sig_in += -(1 << (REAL_BITS-1));
         if (sig_in <= REAL_CONST(-32768))
             return -32768;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faad2-2.11.2.git13/libfaad/output.c 
new/faad2-2.11.2.git18/libfaad/output.c
--- old/faad2-2.11.2.git13/libfaad/output.c     2026-06-26 00:25:39.000000000 
+0200
+++ new/faad2-2.11.2.git18/libfaad/output.c     2026-07-18 09:38:09.000000000 
+0200
@@ -488,13 +488,15 @@
                     hDecoder->internal_channel);
                 if (tmp >= 0)
                 {
-                    tmp += (1 << (REAL_BITS-1));
+                    if (tmp <= 0x7FFFFFFF - (1 << (REAL_BITS-1)))
+                        tmp += (1 << (REAL_BITS-1));
                     if (tmp >= REAL_CONST(32767))
                     {
                         tmp = REAL_CONST(32767);
                     }
                 } else {
-                    tmp += -(1 << (REAL_BITS-1));
+                    if (tmp >= (int32_t)0x80000000 + (1 << (REAL_BITS-1)))
+                        tmp += -(1 << (REAL_BITS-1));
                     if (tmp <= REAL_CONST(-32768))
                     {
                         tmp = REAL_CONST(-32768);
@@ -511,14 +513,16 @@
                     hDecoder->internal_channel);
                 if (tmp >= 0)
                 {
-                    tmp += (1 << (REAL_BITS-9));
+                    if (tmp <= 0x7FFFFFFF - (1 << (REAL_BITS-9)))
+                        tmp += (1 << (REAL_BITS-9));
                     tmp >>= (REAL_BITS-8);
                     if (tmp >= 8388607)
                     {
                         tmp = 8388607;
                     }
                 } else {
-                    tmp += -(1 << (REAL_BITS-9));
+                    if (tmp >= (int32_t)0x80000000 + (1 << (REAL_BITS-9)))
+                        tmp += -(1 << (REAL_BITS-9));
                     tmp >>= (REAL_BITS-8);
                     if (tmp <= -8388608)
                     {
@@ -538,9 +542,11 @@
                     hDecoder->internal_channel);
                 if (tmp >= 0)
                 {
-                    tmp += half;
+                    if (tmp <= 0x7FFFFFFF - half)
+                        tmp += half;
                 } else {
-                    tmp += -half;
+                    if (tmp >= (int32_t)0x80000000 + half)
+                        tmp += -half;
                 }
                 tmp = SAT_SHIFT(tmp, exp, sat_shift_mask);
                 int_sample_buffer[(i*channels)+ch] = tmp;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faad2-2.11.2.git13/libfaad/ps_syntax.c 
new/faad2-2.11.2.git18/libfaad/ps_syntax.c
--- old/faad2-2.11.2.git13/libfaad/ps_syntax.c  2026-06-26 00:25:39.000000000 
+0200
+++ new/faad2-2.11.2.git18/libfaad/ps_syntax.c  2026-07-18 09:38:09.000000000 
+0200
@@ -450,11 +450,20 @@
         num_bits_left = 8 * cnt;
         while (num_bits_left > 7)
         {
+            uint16_t bits_read;
             uint8_t ps_extension_id = (uint8_t)faad_getbits(ld, 2
                 DEBUGVAR(1,1013,"ps_data(): ps_extension_size"));
 
             num_bits_left -= 2;
-            num_bits_left -= ps_extension(ps, ld, ps_extension_id, 
num_bits_left);
+            bits_read = ps_extension(ps, ld, ps_extension_id, num_bits_left);
+
+            /* ps_extension() decodes a variable amount of Huffman data and 
does
+               not stop at the advertised ps_extension_size, so it can read 
more
+               than num_bits_left. Clamp instead of letting the uint16_t wrap. 
*/
+            if (bits_read > num_bits_left)
+                num_bits_left = 0;
+            else
+                num_bits_left -= bits_read;
         }
 
         faad_getbits(ld, num_bits_left
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faad2-2.11.2.git13/libfaad/sbr_hfadj.c 
new/faad2-2.11.2.git18/libfaad/sbr_hfadj.c
--- old/faad2-2.11.2.git13/libfaad/sbr_hfadj.c  2026-06-26 00:25:39.000000000 
+0200
+++ new/faad2-2.11.2.git18/libfaad/sbr_hfadj.c  2026-07-18 09:38:09.000000000 
+0200
@@ -138,13 +138,19 @@
                                          qmf_t Xsbr[MAX_NTSRHFG][64], uint8_t 
ch)
 {
     uint8_t m, l, j, k, k_l, k_h, p;
-    real_t nrg, div;
+    real_t div;
     (void)adj;  /* TODO: remove parameter? */
 #ifdef FIXED_POINT
+    /* the per-bin energy is accumulated over the envelope's time slots and,
+       for the wider bands, its QMF bins; that sum exceeds 32 bits on ordinary
+       content, so keep it in 64 bits. the running int32 sum otherwise wraps
+       before the limit test below can reject an over-range energy. */
+    int64_t nrg;
     const real_t half = REAL_CONST(0.5);
     real_t limit;
     real_t mul;
 #else
+    real_t nrg;
     const real_t half = 0;  /* Compiler is smart enough to eliminate +0 op. */
     const real_t limit = FLT_MAX;
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faad2-2.11.2.git13/libfaad/ssr.c 
new/faad2-2.11.2.git18/libfaad/ssr.c
--- old/faad2-2.11.2.git13/libfaad/ssr.c        2026-06-26 00:25:39.000000000 
+0200
+++ new/faad2-2.11.2.git18/libfaad/ssr.c        2026-07-18 09:38:09.000000000 
+0200
@@ -37,6 +37,11 @@
 #include "filtbank.h"
 #include "ssr.h"
 #include "ssr_fb.h"
+#include "ssr_ipqf.h"
+
+static void ssr_gc_function(ssr_info *ssr, real_t *prev_fmd,
+                            real_t *gc_function, uint8_t window_sequence,
+                            uint16_t frame_len);
 
 void ssr_decode(ssr_info *ssr, fb_info *fb, uint8_t window_sequence,
                 uint8_t window_shape, uint8_t window_shape_prev,
@@ -90,7 +95,7 @@
     if (window_sequence != EIGHT_SHORT_SEQUENCE)
     {
         ssr_gc_function(ssr, &prev_fmd[band * frame_len*2],
-            gc_function, window_sequence, band, frame_len);
+            gc_function, window_sequence, frame_len);
 
         for (i = 0; i < frame_len*2; i++)
             data[band * frame_len*2 + i] *= gc_function[i];
@@ -136,7 +141,7 @@
 
 static void ssr_gc_function(ssr_info *ssr, real_t *prev_fmd,
                             real_t *gc_function, uint8_t window_sequence,
-                            uint8_t band, uint16_t frame_len)
+                            uint16_t frame_len)
 {
     uint16_t i;
     uint16_t len_area1, len_area2;

++++++ faad2.obsinfo ++++++
--- /var/tmp/diff_new_pack.AB2mU2/_old  2026-07-28 17:50:01.011913316 +0200
+++ /var/tmp/diff_new_pack.AB2mU2/_new  2026-07-28 17:50:01.031914015 +0200
@@ -1,5 +1,5 @@
 name: faad2
-version: 2.11.2.git13
-mtime: 1782426339
-commit: e87c7410155becdd05123d4bb532d7c7d56fca04
+version: 2.11.2.git18
+mtime: 1784360289
+commit: b743105de73f31f214f824e72d2001a3736da768
 

Reply via email to