libcli smb smb1cli_trans: fix ubsan warning
authorGary Lockyer <gary@catalyst.net.nz>
Wed, 5 Jun 2019 20:40:42 +0000 (08:40 +1200)
committerAndreas Schneider <asn@cryptomilk.org>
Wed, 16 Oct 2019 18:00:31 +0000 (18:00 +0000)
Fix ubsan warning null pointer passed as argument 2 when the source
pointer is NULL.  The calls to memcpy are now guarded by an
if (len > 0)

Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Wed Oct 16 18:00:31 UTC 2019 on sn-devel-184

libcli/smb/smb1cli_trans.c

index c305463846de9a6e043aa8bf89e581260d2c4f7e..99021ce2b47f91506afcd2d9700e45f2c0eb8d90 100644 (file)
@@ -351,8 +351,10 @@ static void smb1cli_trans_format(struct smb1cli_trans_state *state,
                SSVAL(vwv +12, 0, data_offset);
                SCVAL(vwv +13, 0, state->num_setup);
                SCVAL(vwv +13, 1, 0);   /* reserved */
-               memcpy(vwv + 14, state->setup,
-                      sizeof(uint16_t) * state->num_setup);
+               if (state->num_setup > 0) {
+                       memcpy(vwv + 14, state->setup,
+                              sizeof(uint16_t) * state->num_setup);
+               }
                break;
        case SMBtranss:
        case SMBtranss2: