diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-15 08:38:40 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-15 08:38:40 +0000 |
commit | cc9d02709f82d0da8d846f1fc0886c562fd0c091 (patch) | |
tree | df70791e6bd93c4385a1b9578c2e23fee084e5f0 /tools/wine_valgrind/valgrind-suppressions | |
parent | 26a645902ab659f2365e4cbd4a739e2ba8a9ce94 (diff) | |
download | chromium_src-cc9d02709f82d0da8d846f1fc0886c562fd0c091.zip chromium_src-cc9d02709f82d0da8d846f1fc0886c562fd0c091.tar.gz chromium_src-cc9d02709f82d0da8d846f1fc0886c562fd0c091.tar.bz2 |
Valgrind: Add test script and suppression files for Valgrinding win32 executables in Wine on Linux.
These files are from winezeug.googlecode.com @ r884.
TBR=dank
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/500012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34538 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/wine_valgrind/valgrind-suppressions')
-rw-r--r-- | tools/wine_valgrind/valgrind-suppressions | 1076 |
1 files changed, 1076 insertions, 0 deletions
diff --git a/tools/wine_valgrind/valgrind-suppressions b/tools/wine_valgrind/valgrind-suppressions new file mode 100644 index 0000000..078128d8 --- /dev/null +++ b/tools/wine_valgrind/valgrind-suppressions @@ -0,0 +1,1076 @@ +# These three happen if valgrind doesn't notice and handle speculative +# implementations of strchr/strlen/strcat properly. +{ + visual_c_ignore_strchr + Memcheck:Cond + fun:strchr +} +{ + visual_c_ignore_strlen + Memcheck:Cond + fun:strlen +} +{ + visual_c_ignore_strcat + Memcheck:Cond + fun:strcat +} +# These two are because ioctl often involves structs with holes. +# We need to either add one of these per ioctl, or +# just make it apply for *any* call to NtFsControlFile. +{ + wine_struct_hole_FILE_PIPE_WAIT_FOR_BUFFER + Memcheck:Param + writev(vector[1]) + obj:* + fun:wine_server_call + fun:server_ioctl_file + fun:NtFsControlFile + fun:WaitNamedPipeW +} +{ + wine_struct_hole_FILE_PIPE_WAIT_FOR_BUFFER_NONOPTIMIZED + Memcheck:Param + writev(vector[1]) + obj:* + fun:send_request + fun:wine_server_call + fun:server_ioctl_file + fun:NtFsControlFile + fun:WaitNamedPipeW +} +{ + # See http://www.winehq.org/pipermail/wine-devel/2008-November/070539.html + # We might want to add an annotationto WriteConsoleInputW + # for the hole someday. + wine_struct_hole_WriteConsoleInput + Memcheck:Param + writev(vector[...]) + fun:writev + fun:send_request + fun:wine_server_call + fun:wine_server_call_err + fun:WriteConsoleInputW +} +# We sure got a lot of these in the logs when I first started. +# I suppressed them to avoid dispair. +{ + todo_wine_arrgh_wcstombs + Memcheck:Value4 + fun:wine_cp_wcstombs +} +# Now on to system bugs that aren't Wine's fault. +{ + suppress_nss_leak + Memcheck:Leak + fun:malloc + obj:* + fun:__nss_database_lookup +} +{ + bogus_addr4_ldso_27 + Memcheck:Addr4 + obj:/lib*/ld-2.7.so +} +{ + bogus_addr4_ldso_261 + Memcheck:Addr4 + obj:/lib*/ld-2.6.1.so +} +{ + bogus_addr4_ldso_25 + Memcheck:Addr4 + obj:/lib*/ld-2.5.so +} +{ + bogus_addr4_ldso_236 + Memcheck:Addr4 + obj:/lib*/ld-2.3.6.so +} +{ + bogus_cond_ldso_27 + Memcheck:Cond + obj:/lib*/ld-2.7.so +} +{ + bogus_cond_ldso_261 + Memcheck:Cond + obj:/lib*/ld-2.6.1.so +} +{ + bogus_cond_ldso_25 + Memcheck:Cond + obj:/lib*/ld-2.5.so +} +{ + bogus_cond_ldso_236 + Memcheck:Cond + obj:/lib*/ld-2.3.6.so +} +{ + bogus_cond_libglcore_16912 + Memcheck:Cond + obj:/usr/lib*/libGLcore.so.169.12 +} +{ + bogus_value4_libglcore_16912 + Memcheck:Value4 + obj:/usr/lib*/libGLcore.so.169.12 +} +{ + bogus_addr2_libglcore_16912 + Memcheck:Addr2 + obj:/usr/lib*/libGLcore.so.169.12 +} +{ + suppress_ioctl_libglcore_18044 + Memcheck:Param + ioctl(generic) + fun:ioctl + obj:/usr/lib32/libGLcore.so.180.44 +} +{ + suppress_cond_libglcore_18044 + Memcheck:Cond + obj:/usr/lib32/libGLcore.so.180.44 +} +{ + bogus_addr4_libgl_109631 + Memcheck:Addr4 + obj:/usr/lib*/libGL.so.1.0.9631 +} +{ + bogus_addr4_libgl_109639 + Memcheck:Addr4 + obj:/usr/lib*/libGL.so.1.0.9639 +} +{ + suppress_leak_libgl_109631 + Memcheck:Leak + fun:malloc + obj:/usr/lib*/libGL.so.1.0.9631 +} +{ + suppress_leak_libgl_18044 + Memcheck:Leak + fun:malloc + obj:/usr/lib32/libGL.so.180.44 +} +{ + suppress_leak_wglGetProcAddress + Memcheck:Leak + fun:malloc + obj:/usr/lib/libGL* + ... + fun:glXChooseVisual + fun:has_opengl + fun:X11DRV_wglGetProcAddress + fun:wglGetProcAddress +} +{ + bogus_X11_1 + Memcheck:Param + write(buf) + obj:* + obj:/usr/lib*/libX11.so.6.2.0 +} +{ + bogus_X11_2 + Memcheck:Param + write(buf) + obj:* + obj:* + obj:/usr/lib*/libX11.so.6.2.0 +} +{ + bogus_Xcursor + Memcheck:Cond + obj:/usr/lib*/libXcursor.so.1.0.2 +} +{ + suppress_i915_ioctl + Memcheck:Param + ioctl(generic) + obj:* + obj:/usr/lib*/dri/i915_dri.so +} +{ + suppress_i915_cond + Memcheck:Cond + obj:/usr/lib*/dri/i915_dri.so +} +{ + suppress_i915_value + Memcheck:Value4 + obj:/usr/lib*/dri/i915_dri.so +} +{ + suppress_i915_leak1 + Memcheck:Leak + fun:malloc + obj:/usr/lib*/dri/i915_dri.so +} +{ + suppress_i915_leak2 + Memcheck:Leak + fun:memalign + fun:* + obj:/usr/lib*/dri/i915_dri.so +} +{ + suppress_libasound_overlap + Memcheck:Overlap + fun:memcpy + obj:/usr/lib*/libasound.so.2.0.0 +} +{ + suppress_libasound_connect + Memcheck:Param + socketcall.connect(serv_addr..sun_path) + obj:* + obj:/usr/lib*/libasound.so.2.0.0 +} +{ + suppress_libasound_connect2 + Memcheck:Cond + fun:snd_pcm_direct_client_connect + obj:/usr/lib*/libasound.so.2.0.0 +} +{ + suppress_libasound_bind + Memcheck:Param + socketcall.bind(my_addr..sun_path) + obj:* + obj:/usr/lib*/libasound.so.2.0.0 +} +{ + suppress_libasound_ioctl + Memcheck:Param + ioctl(arg) + obj:* + obj:/usr/lib*/libasound.so.2.0.0 +} +{ + suppress_libasound_ioctl2 + Memcheck:Param + ioctl(arg) + obj:* + fun:ioctl + obj:/usr/lib*/libasound.so.2.0.0 +} +{ + suppress_libasound_semctl + Memcheck:Param + semctl(IPC_SET, arg.buf) + obj:* + obj:/usr/lib*/libasound.so.2.0.0 +} +{ + todo_suppress_libasound_leak + Memcheck:Leak + ... + obj:/usr/lib*/libasound.so.2.0.0 +} +{ + todo_suppress_libfontconfig_leak + Memcheck:Leak + fun:malloc + obj:/usr/lib*/libfontconfig.so.1.* +} +# thread_detach() should clean this up?? +{ + todo_wine_dlls_winex11drv__x11drv_init_thread_data_main + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:x11drv_init_thread_data +} +# Supposedly there's a call back to X11DRV_DestroyIM at thread destruction time...? +# and thread_detach() should also clean it up?? +{ + todo_wine_dlls_winex11drv__x11drv_init_thread_data_xim + Memcheck:Leak + fun:malloc + fun:_XimOpenIM + fun:_XimRegisterIMInstantiateCallback + fun:XRegisterIMInstantiateCallback + fun:X11DRV_SetupXIM + fun:x11drv_init_thread_data + fun:x11drv_thread_data + fun:X11DRV_SetWindowPos +} +{ + todo_wine_dlls_winex11drv__X11DRV_XRandR_Init + Memcheck:Leak + fun:*alloc + fun:XInitExtension + fun:XextAddDisplay + obj:*/libXrandr* + fun:XRRQueryExtension + fun:X11DRV_XRandR_Init +} +{ + todo_wine_dlls_winex11drv__X11DRV_XRender_Init + Memcheck:Leak + fun:*alloc + fun:XInitExtension + fun:XRenderFindDisplay + fun:XRenderQueryExtension + fun:X11DRV_XRender_Init +} +{ + todo_wine_dlls_winex11drv__xinerama_init + Memcheck:Leak + fun:*alloc + fun:XInitExtension + fun:XextAddDisplay + ... + fun:XPanoramiXQueryExtension + fun:XineramaQueryExtension + ... + fun:xinerama_init +} +{ + todo_wine_dlls_winex11drv__XkbUseExtension + Memcheck:Leak + fun:*alloc + fun:XInitExtension + fun:XkbUseExtension + fun:XOpenDisplay +} +{ + todo_wine_dlls_winex11drv__X11DRV_XComposite_Init + Memcheck:Leak + fun:*alloc + fun:XInitExtension + fun:XCompositeFindDisplay + fun:XCompositeQueryExtension +} +{ + todo_wine_dlls_winex11drv__X11DRV_XF86VM_Init + Memcheck:Leak + fun:*alloc + fun:XInitExtension + fun:XextAddDisplay + fun:* + fun:XF86VidModeQueryExtension + fun:X11DRV_XF86VM_Init +} +{ + todo_wine_dlls_winex11drv_XOpenDisplay + Memcheck:Leak + fun:malloc + ... + fun:xcb_connect + fun:_XConnectXCB + fun:XOpenDisplay +} +{ + todo_wine_dlls_winex11drv_XOpenDisplay_2 + Memcheck:Leak + fun:malloc + ... + fun:xcb_get_extension_data + fun:xcb_prefetch_maximum_request_length + fun:xcb_get_maximum_request_length + fun:XOpenDisplay + fun:DllMain +} +{ + todo_suppress_alloc_module_leak + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:RtlCreateUnicodeString + fun:alloc_module +} +{ + todo_suppress_dlopen_leak + Memcheck:Leak + fun:*alloc + ... + fun:dlopen +} +{ + todo_suppress_dlopen_leak2 + Memcheck:Leak + fun:*alloc + ... + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error +} +{ + suppress_dlopen_addr4 + Memcheck:Addr4 + ... + fun:__libc_dlopen_mode +} +{ + todo_suppress_load_library_leak + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:RtlAnsiStringToUnicodeString + fun:RtlCreateUnicodeStringFromAsciiz + fun:get_load_order +} +{ + todo_suppress_wine_init_load_order_leak + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:RtlAnsiStringToUnicodeString + fun:RtlCreateUnicodeStringFromAsciiz + fun:init_load_order +} +# ntdll/loader.c explicitly avoids freeing when .exe's exit at the moment +{ + todo_suppress_wine_alloc_module_leak + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:RtlCreateUnicodeString + fun:alloc_module +} +{ + todo_suppress_explorer_leak + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:load_driver + fun:loaderdrv_CreateDesktopWindow + fun:WIN_CreateWindowEx + fun:CreateWindowExW + fun:manage_desktop + fun:WinMain + fun:main +} +{ + todo_suppress_exception_addr4 + Memcheck:Addr4 + fun:__wine_call_from_32_regs + obj:/home/dank/wine-git/dlls/ntdll/ntdll.dll.so + obj:/home/dank/wine-git/dlls/ntdll/ntdll.dll.so + fun:raise_exception +} +{ + todo_ignore_bogus_writes_in_req_handler + Memcheck:Param + writev(vector[1]) + obj:* + fun:call_req_handler +} +# See comment in dlls/kernel32/tests/thread.c at end of threadFunc1 +{ + suppress_wine_verify_lstrlenA_deadbeef_zero + Memcheck:Addr1 + fun:strlen + fun:lstrlenA + fun:threadFunc1 + obj:/home/dank/wine-git/dlls/ntdll/ntdll.dll.so + fun:call_thread_func +} +# test_UnpackDDElParam intentionally passes a bad pointer +{ + suppress_wine_user32_dde_tests + Memcheck:Addr2 + fun:GlobalLock + fun:UnpackDDElParam + fun:test_UnpackDDElParam + fun:func_dde + fun:run_test + fun:main +} +{ + suppress_gmtime + Memcheck:Cond + obj:* + obj:* + fun:gmtime + fun:FileTimeToDosDateTime +} +{ + suppress_gmtime_r + Memcheck:Cond + obj:* + obj:* + fun:gmtime_r + fun:FileTimeToDosDateTime +} +{ + suppress_if_name2index_glibc_27 + Memcheck:Param + ioctl(SIOCGIFINDEX) + obj:/lib*/ld-2.7.so + fun:getInterfaceIndexByName +} +{ + suppress_if_nameindex_glibc_23 + Memcheck:Param + socketcall.sendto(msg) + obj:/lib*/ld-2.3.*.so + fun:if_nameindex +} +{ + # See also http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553016 + # and http://bbs.archlinux.org/viewtopic.php?pid=273718 + suppress_glibc_dl_relocate_object + Memcheck:Cond + fun:_dl_relocate_object +} +{ + # With ubuntu 9.04: + # Uninitialised value was created by a stack allocation + # at __libc_res_nsend (res_send.c:343) + glibc_bug_libc_res_nsend + Memcheck:Cond + fun:__libc_res_nsend +} +# Naming convention for Wine suppressions: +# If we think it's solid: +# suppress_wine_dirname__functionname[_moreifneeded] +# If we aren't sure, change suppress to todo +{ + # intentionally frees an invalid pointer. + # It would be nice if that were in a different + # function, so we could suppress it specifically, + # and not other possible warnings in the heap tests. + suppress_wine_dlls_kernel32_tests__test_heap_invalid_free + Memcheck:Free + fun:notify_free + fun:RtlFreeHeap + fun:HeapFree + fun:GlobalFree + fun:test_heap + fun:func_heap + fun:run_test + fun:main +} +{ + # Lots of little invalid things going on in this test + suppress_wine_dlls_kernel32_tests_test_heap + Memcheck:Addr2 + ... + fun:test_heap + fun:func_heap + fun:run_test + fun:main +} +{ + suppress_wine_dlls_kernel32_tests__CreateThread_basic_badaccess + Memcheck:Addr1 + fun:strlen + fun:lstrlenA + fun:test_CreateThread_basic +} +{ + suppress_wine_dlls_kernel32_IsBadReadPtr + Memcheck:Addr1 + fun:IsBadReadPtr +} +{ + suppress_wine_dlls_kernel32__IsBadWritePtr + Memcheck:Addr1 + fun:IsBadWritePtr +} +{ + suppress_wine_dlls_kernel32_tests__doCrash + Memcheck:Addr1 + fun:doCrash +} +# This one is for a jump to zero done intentionally by the crypt32 tests +# compiled with -O2, it looks like this? +{ + suppress_wine_dlls_crypt32_tests__test_data_msg_O2 + Memcheck:Addr4 + fun:__wine_call_from_32_regs + fun:CryptMsgUpdate + fun:test_data_msg +} +# compiled with -O0, it looks like this? +{ + suppress_wine_dlls_crypt32_tests__test_data_msg_O0 + Memcheck:Jump + obj:* + fun:CryptMsgUpdate + fun:test_data_msg_update + fun:test_data_msg +} +# These two functions test error returned by file read/write with null buffers +{ + suppress_wine_kernel32_tests__test_read_write_nullwrite + Memcheck:Param + write(buf) + obj:/lib*/ld-*.so + fun:WriteFile + fun:test_read_write + fun:func_file + fun:run_test + fun:main +} +{ + suppress_wine_kernel32_tests__test_read_write_nullread + Memcheck:Param + read(buf) + obj:/lib*/ld-*.so + fun:ReadFile + fun:test_read_write + fun:func_file + fun:run_test + fun:main +} + +# test_SetThreadContext: +# The code in question looks like this: +#/* simulate a call to set_test_val(10) */ +#stack = (int *)ctx.Esp; +#stack[-1] = 10; +#stack[-2] = ctx.Eip; +# So we actually are writing to the stack, just not using 'proper' +# access to the stack. +{ + suppress_wine_kernel32_tests__test_SetThreadContext + Memcheck:Addr4 + fun:test_SetThreadContext + fun:func_thread + fun:run_test + fun:main +} +{ + ignore_rsaenh_test_expected_bad_access + Memcheck:Addr4 + fun:CryptReleaseContext + fun:clean_up_base_environment +} + +# Back to system suppressions that aren't wine's fault +# gecko is #1 in the list of offending upstream libraries... +{ + todo_gecko_warnings_r_us + Memcheck:Addr4 + obj:*wine_gecko* +} +{ + todo_gecko_warnings_r_us2 + Memcheck:Cond + obj:*wine_gecko* +} +# followed by openssl +{ + todo_openssl_warnings_r_us1a + Memcheck:Addr4 + obj:/usr/lib*/libcrypto.so* +} +{ + todo_openssl_warnings_r_us1b + Memcheck:Value4 + obj:/usr/lib*/*libcrypto.so* +} +{ + todo_openssl_warnings_r_us1c + Memcheck:Cond + obj:/usr/lib*/*libcrypto.so* +} +{ + todo_openssl_warnings_r_us2a + Memcheck:Addr4 + obj:* + obj:/usr/lib*/*libcrypto.so* +} +{ + todo_openssl_warnings_r_us2b + Memcheck:Value4 + obj:* + obj:/usr/lib*/*libcrypto.so* +} +{ + todo_openssl_warnings_r_us2c + Memcheck:Cond + obj:* + obj:/usr/lib*/*libcrypto.so* +} +{ + todo_openssl_warnings_r_us1d + Memcheck:Param + write(buf) + obj:* + obj:/usr/lib*/*libcrypto.so* +} +{ + todo_openssl_warnings_r_us3a + Memcheck:Addr4 + obj:/usr/lib*/*libssl.so* +} +{ + todo_openssl_warnings_r_us3b + Memcheck:Value4 + obj:/usr/lib*/*libssl.so* +} +{ + todo_openssl_warnings_r_us3c + Memcheck:Cond + obj:/usr/lib*/*libssl.so* +} +{ + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=532059 + # http://rt.openssl.org/index.html?q=1642 + todo_openssl_warnings_mod_inverse + Memcheck:Cond + fun:BN_mod_inverse +} +{ + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=532059 + # http://rt.openssl.org/index.html?q=1642 + todo_openssl_warnings_div + Memcheck:Cond + fun:BN_div +} +# And sane +{ + todo_sane_warnings_r_us + Memcheck:Addr4 + obj:*libsane* +} +{ + todo_sane_warnings_r_us2 + Memcheck:Cond + obj:*libsane* +} +# and visual C++ 6 +{ + todo_visual_c_chkstk + Memcheck:Addr4 + fun:$$$00001 +} +{ + todo_visual_c_chkstk_2 + Memcheck:Addr4 + fun:_chkstk +} +{ + visual_c_ignore_bad_typeid + Memcheck:Cond + fun:??0bad_typeid@@QAE@ABV0@@Z +} +# and pulseaudio?? possible bad stack from valgrind? +{ + fixme_pulseaudio_leak_widOpen + Memcheck:Leak + fun:calloc + ... + fun:pa_cvolume_set +} +{ + fixme_pulseaudio_leak_pa_mainloop_dispatch + Memcheck:Leak + fun:calloc + fun:pa_xmalloc0 + obj:/usr/lib32/libpulse.so.0.7.1 + obj:/usr/lib32/libpulse.so.0.7.1 + obj:/usr/lib32/libpulse.so.0.7.1 + obj:/usr/lib32/libpulse.so.0.7.1 + obj:/usr/lib32/libpulse.so.0.7.1 + obj:/usr/lib32/libpulse.so.0.7.1 + obj:/usr/lib32/libpulse.so.0.7.1 + obj:/usr/lib32/libpulse.so.0.7.1 + fun:pa_mainloop_dispatch +} +# and msacm32? possible bad stack from valgrind? +{ + fixme_msacm32_leak + Memcheck:Leak + fun:calloc + obj:* + fun:acmDriverRemove + obj:* + fun:acmFilterTagDetailsW +} +{ + fixme_msacm32_leak2 + Memcheck:Leak + fun:calloc + fun:attr_copy_file + ... + fun:widReset +} +# Seen in chromium's EmfTest +{ + fixme_msacm32_leak3 + Memcheck:Leak + fun:calloc + obj:* + fun:wodPrepare + obj:* + fun:wodMapperReconfigure +} +# aw, heck, sometimes the symbols aren't there? +{ + <insert_a_suppression_name_here> + Memcheck:Leak + fun:calloc + obj:* + obj:*msacm32.drv.so +} + +# shell32 isn't freeing its imagelist cache on unload? +{ + wine_bug_20544 + Memcheck:Leak + fun:malloc + fun:XInitExtension + fun:XextAddDisplay + fun:* + fun:XShmQueryVersion + fun:X11DRV_CreateDIBSection + fun:CreateDIBSection + fun:ImageList_CreateImage + fun:ImageList_Create + fun:SIC_Initialize + fun:DllMain +} +# winmm isn't freeing everything on unload? +{ + wine_bug_20545 + Memcheck:Leak + ... + fun:Rtl*AllocateHeap + fun:MMDRV_InitPerType + fun:MMDRV_Install + fun:MMDRV_Init +} +{ + # This one's probably benign? + user32_builtin_classes_leak + Memcheck:Leak + fun:calloc + fun:XAddExtension + fun:_XcursorGetDisplayInfo + fun:XcursorSupportsARGB + fun:XcursorNoticeCreateBitmap + fun:_XNoticeCreateBitmap + fun:XCreatePixmap + fun:X11DRV_BITMAP_Init + fun:device_init + fun:X11DRV_CreateDC + fun:CreateDCW + fun:CURSORICON_CreateIconFromBMI + fun:CreateIconFromResourceEx + fun:CURSORICON_Load + fun:LoadImageW + fun:LoadImageA + fun:LoadCursorA + fun:register_builtin + fun:CLASS_RegisterBuiltinClasses +} +# yet another leak on unload, seen on chromium's net http and ftp tests +{ + wine_bug_20549 + Memcheck:Leak + fun:malloc + ... + fun:SECUR32_initSchannelSP +} +{ + # yet another gnutls leak? + gnutls_leak_bug_2 + Memcheck:Leak + fun:calloc + ... +# fun:_gnutls_hash_init (commented out because sometimes this shows up without symbols) +# fun:gnutls_handshake + fun:schan_InitializeSecurityContextW + fun:InitializeSecurityContextW +} +# leak on thread creation? +{ + wine_bug_20552 + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:alloc_thread_tls + fun:MODULE_DllThreadAttach +} +{ + wine_secur32_ignore_fork_helper_leak + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:fork_helper + fun:SECUR32_initNTLMSP + fun:SECUR32_initializeProviders +} +{ + wine_bug_20548_ConnectNamedPipe + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:server_ioctl_file + fun:NtFsControlFile +} +{ + wine_bug_20548_ReadFile + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:NtReadFile +} +{ + wine_bug_20548_WriteFile + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:NtWriteFile +} +{ + wine_bug_20548_WS_shutdown + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:WS2_register_async_shutdown + fun:WS_shutdown +} +{ + todo_tls_leak_wine_bug_20552 + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:alloc_thread_tls + fun:MODULE_DllThreadAttach + fun:start_thread +} +{ + wine_bug_20654 + Memcheck:Leak + ... + fun:RtlAllocateHeap + fun:get_full_path_helper + fun:RtlGetFullPathName_U +} +{ + # This leak is expected - wine doesn't have a reliable way to free the default provider on exit. + wine_bug_20679 + Memcheck:Leak + ... + fun:CRYPT_GetDefaultProvider +} +{ + # Benign window title leak? + wine_bug_20692_wontfix + Memcheck:Leak + ... + fun:DEFWND_SetText* + ... + fun:CreateWindow* +} +{ + expected_double_free_wintrust_tests_crypt + Memcheck:Addr4 + fun:CryptCATAdminReleaseContext + fun:test_context + fun:func_crypt + fun:run_test + fun:main +} +{ + expected_bad_pointer_wininet_tests_http + Memcheck:Addr1 + fun:HttpOpenRequestA + fun:test_bogus_accept_types_array + fun:func_http + fun:run_test + fun:main +} +{ + expected_use_after_free_user32_tests_dialog + Memcheck:Addr4 + fun:DIALOG_CreateIndirect + fun:DialogBoxParamA + fun:test_DialogBoxParamA + fun:func_dialog + fun:run_test + fun:main +} +{ + expected_12345678_ptr_user32_tests_class + Memcheck:Addr2 + fun:RtlImageNtHeader + fun:RtlImageDirectoryEntryToData + fun:find_entry + fun:LdrFindResource_U + fun:find_resourceA + fun:FindResourceExA + fun:FindResourceA + fun:LoadMenuA + fun:WIN_CreateWindowEx + fun:CreateWindowExA + fun:check_instance_ + fun:test_instances + fun:func_class + fun:run_test + fun:main +} +{ + expected_advapi32_tests_crypt_badparams + Memcheck:Addr4 + ... + fun:test_incorrect_api_usage + fun:func_crypt + fun:run_test + fun:main +} +{ + # These aren't even in wine, but in a helper app wine runs + ntlm_auth_leaks + Memcheck:Leak + ... + obj:/usr/bin/ntlm_auth +} +{ + ntlm_auth_leaks + Memcheck:Leak + ... + fun:poptGetNextOpt + fun:main +} +{ + expected_wininet_tests_http_test_bogus_accept_types_array + Memcheck:Addr1 + fun:HttpOpenRequestA + fun:test_bogus_accept_types_array + fun:func_http + fun:run_test + fun:main +} +{ + expected_advapi32_tests_crypt_see_wine_bug_20918 + Memcheck:Addr4 + fun:* + fun:test_incorrect_api_usage + fun:func_crypt + fun:run_test + fun:main +} +{ + expected_crypt32_tests_crypt_see_wine_bug_20984 + Memcheck:Leak + fun:notify_alloc + fun:RtlAllocateHeap + fun:new_object + fun:new_key + fun:import_public_key + fun:import_key + fun:RSAENH_CPImportKey + fun:CryptImportKey + fun:CRYPT_ImportRsaPublicKeyInfoEx + fun:CryptImportPublicKeyInfoEx + fun:CryptImportPublicKeyInfo + fun:CDecodeSignedMsg_VerifySignatureWithKey + fun:CDecodeSignedMsg_VerifySignature + fun:CDecodeMsg_Control + fun:CryptMsgControl + fun:CryptVerifyDetachedMessageSignature + fun:test_verify_detached_message_signature +} |