diameter: change GArray into wmem_array.
authorDario Lombardo <lomato@gmail.com>
Thu, 18 Feb 2016 10:30:41 +0000 (11:30 +0100)
committerAnders Broman <a.broman58@gmail.com>
Thu, 25 Feb 2016 04:31:44 +0000 (04:31 +0000)
commitb64d19bba2b7b358cea497501f25afe9d97a801d
tree810841440ba63e4a9c8b1ff9f22cfb89c75bb489
parent4fec250ed953192b3de697f6fb6b773d03e1a0c5
diameter: change GArray into wmem_array.

This change fixes a leak in packet-diameter that loads a dictionary
but doesn't free all the data. Found by valgrind.

==30481== 36,656 (960 direct, 35,696 indirect) bytes in 24 blocks are definitely lost in loss record 3,417 of 3,421
==30481==    at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30481==    by 0xA7FE610: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4002.0)
==30481==    by 0xA81422D: g_slice_alloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4002.0)
==30481==    by 0xA7CDC44: g_array_sized_new (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4002.0)
==30481==    by 0x6863743: dictionary_load (packet-diameter.c:1980)
==30481==    by 0x6863743: proto_register_diameter (packet-diameter.c:2344)
==30481==    by 0x71C4BA4: register_all_protocols (register.c:323)
==30481==    by 0x65EEFA7: proto_init (proto.c:521)
==30481==    by 0x65CD621: epan_init (epan.c:126)
==30481==    by 0x115330: main (tshark.c:1220)

Change-Id: I3c0d19e1accab415355aa0f50c598f0c83356985
Reviewed-on: https://code.wireshark.org/review/13821
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
epan/dissectors/packet-diameter.c