mesh: Fix using uninitialized bytes 23/235123/1
authorBrian Gix <brian.gix@intel.com>
Fri, 22 May 2020 18:40:40 +0000 (11:40 -0700)
committerAbhay Agarwal <ay.agarwal@samsung.com>
Thu, 28 May 2020 11:27:22 +0000 (16:57 +0530)
Fixes two problems found with static analysis

Change-Id: I66cef81aad17068d50f182b241b7acc6f0ff73f4
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
mesh/crypto.c
mesh/node.c

index 617db84..1281b47 100644 (file)
@@ -552,6 +552,7 @@ bool mesh_crypto_packet_build(bool ctl, uint8_t ttl,
        if (seq > SEQ_MASK)
                return false;
 
+       packet[0] = 0;
        l_put_be32(seq, packet + 1);
        packet[1] = (ctl ? CTL : 0) | (ttl & TTL_MASK);
 
index 535a021..904f3f6 100644 (file)
@@ -1596,6 +1596,8 @@ static void get_managed_objects_cb(struct l_dbus_message *msg, void *user_data)
                /* Generate device and primary network keys */
                l_getrandom(dev_key, sizeof(dev_key));
                l_getrandom(net_key.old_key, sizeof(net_key.old_key));
+               memcpy(net_key.new_key, net_key.old_key,
+                                               sizeof(net_key.old_key));
                net_key.net_idx = PRIMARY_NET_IDX;
                net_key.phase = KEY_REFRESH_PHASE_NONE;