Hi folks, I notice that in the ieee1905 dissector there is now the following code for calculating fragment hashes.
static guint ieee1905_fragment_hash(gconstpointer k) { guint hash_val; const ieee1905_fragment_key *key = (const ieee1905_fragment_key *)k; if (!key || !key->src.data || !key->dst.data) { return 0; } const guint8 src_len = key->src.len; const guint8 dst_len = key->dst.len; const guint8 hash_buf_len = src_len + dst_len + sizeof(guint8) + sizeof(guint32); guint8* hash_buf = (guint8*)wmem_alloc(wmem_packet_scope(), hash_buf_len); memcpy(hash_buf, key->src.data, src_len); memcpy(&hash_buf[src_len], key->dst.data, dst_len); hash_buf[src_len + dst_len] = key->frag_id; memcpy(&hash_buf[src_len + dst_len + sizeof(guint8)], &key->vlan_id, sizeof(guint32)); hash_val = wmem_strong_hash((const guint8 *)hash_buf, hash_buf_len); return hash_val; } My question is: Should we be using wmem_alloc for the hash_buf because it seems like we never use it after the hash is calculated so why leave it around and why allocate it instead of using a buffer on the stack. We also never free it, although it will be freed when the packet goes away, I guess. -- Regards, Richard Sharpe (何以解憂?唯有杜康。--曹操)(传说杜康是酒的发明者) ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe