QUIC DDD: Fix bug in ddd-06-mem-uv
authorHugo Landau <hlandau@openssl.org>
Wed, 9 Aug 2023 16:46:33 +0000 (17:46 +0100)
committerHugo Landau <hlandau@openssl.org>
Fri, 1 Sep 2023 09:45:34 +0000 (10:45 +0100)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715)

doc/designs/ddd/ddd-06-mem-uv.c

index f912f68bdf77628175dbd3cae28753d263e5b51c..7af5a111054c8aba247672b836c83a82806671e0 100644 (file)
@@ -237,11 +237,12 @@ static void on_rx_push(APP_CONN *conn)
 
         srd = SSL_read(conn->ssl, buf, buf_len);
         flush_write_buf(conn);
-        if (srd < 0) {
-            free(buf);
+        if (srd <= 0) {
             rc = SSL_get_error(conn->ssl, srd);
-            if (rc == SSL_ERROR_WANT_READ)
+            if (rc == SSL_ERROR_WANT_READ) {
+                free(buf);
                 return;
+            }
         }
 
         conn->app_read_cb(conn, buf, srd, conn->app_read_arg);