Validate zmq_msg_size to prevent an integer overflow when calculating 
recv_buf_size (sz + 1). This ensures safe memory allocation on 32-bit 
architectures.
---
 tools/zmqsend.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tools/zmqsend.c b/tools/zmqsend.c
index dc5d426cc8..c0d5a1484d 100644
--- a/tools/zmqsend.c
+++ b/tools/zmqsend.c
@@ -59,6 +59,7 @@ int main(int argc, char **argv)
     int c;
     int recv_buf_size, ret = 0;
     void *zmq_ctx, *socket;
+    size_t sz;
     const char *bind_address = "tcp://localhost:5555";
     const char *infilename = NULL;
     FILE *infile = NULL;
@@ -149,7 +150,13 @@ int main(int argc, char **argv)
         goto end;
     }
 
-    recv_buf_size = zmq_msg_size(&msg) + 1;
+    sz = zmq_msg_size(&msg);
+    if (sz == SIZE_MAX) {
+        av_log(NULL, AV_LOG_ERROR, "Message too large (overflow detected)\n");
+        ret = 1;
+        goto end;
+    }
+    recv_buf_size = sz + 1;
     recv_buf = av_malloc(recv_buf_size);
     if (!recv_buf) {
         av_log(NULL, AV_LOG_ERROR,
-- 
2.52.0.windows.1

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to