[vlc-commits] ty: fix signedness warning, missing limit check

Rémi Denis-Courmont git at videolan.org
Sat Jul 13 11:53:23 CEST 2019


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat Jul 13 12:02:52 2019 +0300| [9bd797a5c408da38551eb3269f9bfad141894059] | committer: Rémi Denis-Courmont

ty: fix signedness warning, missing limit check

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9bd797a5c408da38551eb3269f9bfad141894059
---

 modules/demux/ty.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/modules/demux/ty.c b/modules/demux/ty.c
index 4c02aff65e..a911d39b71 100644
--- a/modules/demux/ty.c
+++ b/modules/demux/ty.c
@@ -38,6 +38,8 @@
 # include "config.h"
 #endif
 
+#include <limits.h>
+
 #include <vlc_common.h>
 #include <vlc_plugin.h>
 #include <vlc_demux.h>
@@ -1642,6 +1644,11 @@ static int parse_master(demux_t *p_demux)
         return VLC_SUCCESS;
     }
 
+#if (UINT32_MAX > SSIZE_MAX)
+    if (i_map_size > SSIZE_MAX)
+        return VLC_EGENERIC;
+#endif
+
     /* parse all the entries */
     p_sys->seq_table = calloc(p_sys->i_seq_table_size, sizeof(ty_seq_table_t));
     if (p_sys->seq_table == NULL)
@@ -1655,10 +1662,12 @@ static int parse_master(demux_t *p_demux)
         p_sys->seq_table[j].l_timestamp = U64_AT(&mst_buf[0]);
         if (i_map_size > 8) {
             msg_Err(p_demux, "Unsupported SEQ bitmap size in master chunk");
-            if(vlc_stream_Read(p_demux->s, NULL, i_map_size) != i_map_size)
+            if (vlc_stream_Read(p_demux->s, NULL, i_map_size)
+                                       < (ssize_t)i_map_size)
                 return VLC_EGENERIC;
         } else {
-            if(vlc_stream_Read(p_demux->s, mst_buf + 8, i_map_size) != i_map_size)
+            if (vlc_stream_Read(p_demux->s, mst_buf + 8, i_map_size)
+                                              < (ssize_t)i_map_size)
                 return VLC_EGENERIC;
             memcpy(p_sys->seq_table[j].chunk_bitmask, &mst_buf[8], i_map_size);
         }



More information about the vlc-commits mailing list