[FFmpeg-cvslog] libavformat/tls_securetransport: fix argument evalulation order UB

Rodger Combs git at videolan.org
Sun Oct 4 23:25:41 CEST 2015


ffmpeg | branch: master | Rodger Combs <rodger.combs at gmail.com> | Sun Oct  4 14:37:52 2015 -0500| [854972b53dc7bf3ab59354d430d3b0e7580315f0] | committer: Michael Niedermayer

libavformat/tls_securetransport: fix argument evalulation order UB

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=854972b53dc7bf3ab59354d430d3b0e7580315f0
---

 libavformat/tls_securetransport.c |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavformat/tls_securetransport.c b/libavformat/tls_securetransport.c
index 73662d7..6ad266a 100644
--- a/libavformat/tls_securetransport.c
+++ b/libavformat/tls_securetransport.c
@@ -350,8 +350,9 @@ static int map_ssl_error(OSStatus status, size_t processed)
 static int tls_read(URLContext *h, uint8_t *buf, int size)
 {
     TLSContext *c = h->priv_data;
-    size_t processed;
-    int ret = map_ssl_error(SSLRead(c->ssl_context, buf, size, &processed), processed);
+    size_t processed = 0;
+    int ret = SSLRead(c->ssl_context, buf, size, &processed);
+    ret = map_ssl_error(ret, processed);
     if (ret > 0)
         return ret;
     if (ret == 0)
@@ -362,8 +363,9 @@ static int tls_read(URLContext *h, uint8_t *buf, int size)
 static int tls_write(URLContext *h, const uint8_t *buf, int size)
 {
     TLSContext *c = h->priv_data;
-    size_t processed;
-    int ret = map_ssl_error(SSLWrite(c->ssl_context, buf, size, &processed), processed);
+    size_t processed = 0;
+    int ret = SSLWrite(c->ssl_context, buf, size, &processed);
+    ret = map_ssl_error(ret, processed);
     if (ret > 0)
         return ret;
     if (ret == 0)



More information about the ffmpeg-cvslog mailing list