[vlc-devel] [PATCH] packetizer/h264: fix resource deallocation	during Close
    Filip Roséen 
    filip at atch.se
       
    Tue Feb  7 02:35:46 CET 2017
    
    
  
The previous loop condition suffers from an off-by-one error, meaning
that the last resource in p_sys->pp_sps and p_sys->pp_pps would never
be released if populated.
fixes #17987
--
Personally I am not a big fan of loop-conditions such as these (fixed)
ones (because they are very error-prone), though given that this is
the aesthetics used in the rest of the relevant translation-unit I
will refrain from refactoring it.
---
 modules/packetizer/h264.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/packetizer/h264.c b/modules/packetizer/h264.c
index 1b455af479..4d2db65f76 100644
--- a/modules/packetizer/h264.c
+++ b/modules/packetizer/h264.c
@@ -330,12 +330,12 @@ static void Close( vlc_object_t *p_this )
 
     if( p_sys->p_frame )
         block_ChainRelease( p_sys->p_frame );
-    for( i = 0; i < H264_SPS_ID_MAX; i++ )
+    for( i = 0; i <= H264_SPS_ID_MAX; i++ )
     {
         if( p_sys->pp_sps[i] )
             block_Release( p_sys->pp_sps[i] );
     }
-    for( i = 0; i < H264_PPS_ID_MAX; i++ )
+    for( i = 0; i <= H264_PPS_ID_MAX; i++ )
     {
         if( p_sys->pp_pps[i] )
             block_Release( p_sys->pp_pps[i] );
-- 
2.11.1
    
    
More information about the vlc-devel
mailing list