hsa: fix potential udp echo server test-bytes int overflow 30/43530/4
authorSemir Sionek <[email protected]>
Thu, 7 Aug 2025 15:15:36 +0000 (15:15 +0000)
committerFlorin Coras <[email protected]>
Sat, 9 Aug 2025 03:03:07 +0000 (03:03 +0000)
Make sure that when running echo server over UDP with test-bytes
enabled, we're getting at least the buffer offset and some data.

Type: fix
Fixes: 84d52285afd1b478d616026a3d63a714abb29f13
Change-Id: I9375e00a76caa9d043f0b5531169fb6f2ca07db7
Signed-off-by: Semir Sionek <[email protected]>
src/plugins/hs_apps/echo_server.c

index abf557c..41f5ac8 100644 (file)
@@ -450,8 +450,13 @@ echo_server_rx_callback (session_t * s)
          es->byte_index += actual_transfer;
        }
       else
-       es_test_bytes ((wrk->rx_buf + sizeof (u32)),
-                      actual_transfer - sizeof (u32), *(u32 *) wrk->rx_buf);
+       {
+         /* Sanity check, in case of a broken dgram */
+         if (actual_transfer < sizeof (u32) + 1)
+           return 0;
+         es_test_bytes ((wrk->rx_buf + sizeof (u32)),
+                        actual_transfer - sizeof (u32), *(u32 *) wrk->rx_buf);
+       }
     }
 
   /*