Wireshark-dev: [Wireshark-dev] r50415 change (was: Re: Epan Memory Leaks)

From: Jakub Zawadzki <darkjames-ws@xxxxxxxxxxxx>
Date: Sun, 7 Jul 2013 00:33:16 +0200
Hi,

Regarding r50415 [1] change.

val_to_str() in not found case can't use wmem packet scope for sure,
it's not only used when dissecting but in lot of places (including startup or UI).

Simple demo:

@@ -2097,7 +2097,7 @@ proto_register_gadu_gadu(void)
-                       { "Message sequence number", "gadu-gadu.msg_ack.seq", FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL }
+                       { "Message sequence number", "gadu-gadu.msg_ack.seq", FT_UINT32, -1, NULL, 0x00, NULL, HFILL }


ERROR:wmem_core.c:45:void *wmem_alloc(wmem_allocator_t *, const size_t): assertion failed: (allocator->in_scope)

Program received signal SIGABRT, Aborted.
0x00007ffff0be1015 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff0be1015 in raise () from /lib64/libc.so.6
#1  0x00007ffff0be248b in abort () from /lib64/libc.so.6
#2  0x00007ffff24350fd in g_assertion_message () from /usr/lib64/libglib-2.0.so.0
#3  0x00007ffff24355d2 in g_assertion_message_expr () from /usr/lib64/libglib-2.0.so.0
#4  0x00007ffff5827284 in wmem_alloc () from /tmp/wireshark/epan/.libs/libwireshark.so.0
#5  0x00007ffff582b5a9 in wmem_strdup_vprintf () from /tmp/wireshark/epan/.libs/libwireshark.so.0
#6  0x00007ffff582b539 in wmem_strdup_printf () from /tmp/wireshark/epan/.libs/libwireshark.so.0
#7  0x00007ffff46c2cb1 in val_to_str () from /tmp/wireshark/epan/.libs/libwireshark.so.0
#8  0x00007ffff4697eb7 in tmp_fld_check_assert () from /tmp/wireshark/epan/.libs/libwireshark.so.0

Not sure about other functions: rval_to_str(), str_to_str().

[1] http://code.wireshark.org/git/?p=wireshark;a=commitdiff;h=bae9597ca70a3b004399d609839637bb7970df78