g_get_charset, g_get_filename_charsets, g_strerror, g_get_home_dir all
return a const char pointer. get_global_random is internally called by
g_random_int, g_random_int_range, etc.
On Arch Linux with glibc 2.26-11 and glib2 2.56.0+7+g66948ae23-1,
"call_init" is not visible in the stack trace, so replace it by "...".
It also has "possibly lost" entries due to GLib types initialization
(gobject_init -> _g_enum_types_init). Finally "g_private_set" internally
leaks after calling "g_private_get_impl".
Change-Id: Ifb2be3188add7bdd060d1e7321c8126e5924a738
Reviewed-on: https://code.wireshark.org/review/27118
Reviewed-by: Dario Lombardo <lomato@gmail.com>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Valgrind considers the "cpuid" instruction to always depend on inputs from eax
and ecx, even though it's only a subset of values of eax for which ecx is
relevant. If ecx is undefined when cpuid is executed, the outputs of cpuid
will be considered undefined.
Instead of suppressing the resulting uninitialised-value warning (the
suppression for which is now out-of-date anyway, now that
register_all_protocols is moved to a worker thread), let's simply set ecx to
zero in ws_cpuid.
Testing done: Built Wireshark on Linux amd64. Before this change, running
"tools/valgrind-wireshark.sh ./test/captures/dhcp.pcap" with
valgrind-3.12.0.SVN on Debian 9.4 amd64 would yield the following Valgrind
error:
==2416== Thread 2:
==2416== Conditional jump or move depends on uninitialised value(s)
==2416== at 0xACB8B22: ws_mempbrk_sse42_compile (ws_mempbrk_sse42.c:58)
==2416== by 0x74F4960: register_all_protocols_worker (register.c:37)
==2416== by 0xB1403D4: g_thread_proxy (gthread.c:784)
==2416== by 0xD438493: start_thread (pthread_create.c:333)
==2416== by 0xB4CAACE: clone (clone.S:97)
With the change, the above message is gone. Inspected the disassembly of
function ws_cpuid, and it looks sane -- just an added "xor ecx, ecx" at the
top.
Change-Id: I2fb382309cac234c400286a6e9fac7d922912c63
Reviewed-on: https://code.wireshark.org/review/26733
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Remove leaks coming from glib.
Change-Id: I05fc6b1143e2d20c953a2c602989cec0cc786f27
Reviewed-on: https://code.wireshark.org/review/20247
Reviewed-by: Michael Mann <mmann78@netscape.net>
When running Valgrind 3.10.0 on an Ubuntu 10.10 x64 guest with Virtualbox 4.3.22, ws_cpuid_sse42() call triggers a false positive when checking ECX bit 20
Guy kindly verified the assembler code and confirmed that everything seems fine
Let's remove the error to avoid noise when running Valgrind on a capture
Change-Id: I357633950249a0c781482865c3221a1babdc74e2
Reviewed-on: https://code.wireshark.org/review/7124
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Evan Huus <eapache@gmail.com>
The fuzzbot has been upgraded, so hopefully this is no longer necessary.
Change-Id: Ia2d8ae03180c6e0b81a4f7b69b72610d047307ff
Reviewed-on: https://code.wireshark.org/review/3194
Reviewed-by: Evan Huus <eapache@gmail.com>