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

From: Evan Huus <eapache@xxxxxxxxx>
Date: Sat, 6 Jul 2013 19:57:13 -0400
Nice catch, partly reverted in r50428. Like the UAT case there isn't
an obvious solution here. Using packet or ephemeral memory is not the
right thing to do, we've just been getting away with it because the
ephemeral backend is less strict than it ought to be...

On Sat, Jul 6, 2013 at 6:33 PM, Jakub Zawadzki
<darkjames-ws@xxxxxxxxxxxx> wrote:
> 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
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
> Archives:    http://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
>              mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe