[PATCH 02/11] crypt32: Don't use links to certs in memory store.

Alexandre Julliard julliard at winehq.org
Wed Oct 16 13:34:57 CDT 2013


Jacek Caban <jacek at codeweavers.com> writes:

> ---
>  dlls/crypt32/cert.c            | 159
> ++++++++++++++++++++++++-----------------
>  dlls/crypt32/collectionstore.c |  12 ++--
>  dlls/crypt32/context.c         |   4 +-
>  dlls/crypt32/crl.c             |   7 +-
>  dlls/crypt32/crypt32_private.h |  22 +++---
>  dlls/crypt32/ctl.c             |   9 ++-
>  dlls/crypt32/provstore.c       |  18 ++---
>  dlls/crypt32/store.c           |  17 +++--
>  8 files changed, 140 insertions(+), 108 deletions(-)

It breaks the tests:

../../../tools/runtest -q -P wine -T ../../.. -M cryptui.dll -p cryptui_test.exe.so cryptui.c && touch cryptui.ok
wine: Unhandled page fault on read access to 0xfffffff0 at address 0x6865c543 (thread 005d), starting debugger...
Unhandled exception: page fault on read access to 0xfffffff0 in 32-bit code (0x6865c543).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:6865c543 ESP:0032fab0 EBP:0032fac8 EFLAGS:00010297(  R- --  I S -A-P-C)
 EAX:ffffffe8 EBX:686bb2fc ECX:00000000 EDX:0013ed38
 ESI:0013ed70 EDI:00000001
Stack dump:
0x0032fab0:  00000005 0013eea0 0032fb68 686bb2fc
0x0032fac0:  686bb2fc 00000001 0032fb68 6864f122
0x0032fad0:  0013d6a8 00000000 00000000 0032fb2c
0x0032fae0:  00000000 00000000 0032fb38 6869a1af
0x0032faf0:  00000000 00020000 00000000 6865b7e0
0x0032fb00:  0032fb3c 0013ed50 0032fb38 6869a618
Backtrace:
=>0 0x6865c543 Context_CopyProperties+0x43(to=0x13d6a8, from=0x0(nil)) [/home/julliard/wine/wine/dlls/crypt32/context.c:99] in crypt32 (0x0032fac8)
  1 0x6864f122 add_cert_to_store+0x3e1(store=<couldn't compute location>, cert=<couldn't compute location>, add_disposition=<couldn't compute location>, use_link=<couldn't compute location>, ret_context=<couldn't compute location>) [/home/julliard/wine/wine/dlls/crypt32/cert.c:270] in crypt32 (0x0032fb68)
  2 0x6864f37d CertAddCertificateContextToStore+0x9c(hCertStore=<couldn't compute location>, pCertContext=<couldn't compute location>, dwAddDisposition=<couldn't compute location>, ppStoreContext=<couldn't compute location>) [/home/julliard/wine/wine/dlls/crypt32/cert.c:288] in crypt32 (0x0032fbc8)
  3 0x5557563b import_cert+0x14a() in cryptui (0x0032fc38)
  4 0x555793ad CryptUIWizImport+0x10c() in cryptui (0x0032fc78)
  5 0x6862a5e7 func_cryptui+0x4f6() [/home/julliard/wine/wine/dlls/cryptui/tests/cryptui.c:397] in cryptui_test (0x0032fcf8)
  6 0x6862b675 run_test+0x144(name=<is not available>) [/home/julliard/wine/wine/dlls/cryptui/tests/../../../include/wine/test.h:570] in cryptui_test (0x0032fd48)
  7 0x68629c23 main+0x152(argc=<is not available>, argv=<is not available>) [/home/julliard/wine/wine/dlls/cryptui/tests/../../../include/wine/test.h:640] in cryptui_test (0x0032fe08)
  8 0x6862c0c0 __wine_spec_exe_entry+0x7f(peb=<couldn't compute location>) [/home/julliard/wine/wine/dlls/winecrt0/exe_entry.c:36] in cryptui_test (0x0032fe58)
  9 0x7b85f38c call_process_entry+0xb() in kernel32 (0x0032fe78)
  10 0x7b86056b start_process+0x6a(peb=<couldn't compute location>) [/home/julliard/wine/wine/dlls/kernel32/process.c:1085] in kernel32 (0x0032feb8)
  11 0x7bc7fea0 call_thread_func_wrapper+0xb() in ntdll (0x0032fed8)
  12 0x7bc82dad call_thread_func+0x7c(entry=0x7b860500, arg=0x7ffdf000, frame=0x32ffc8) [/home/julliard/wine/wine/dlls/ntdll/signal_i386.c:2602] in ntdll (0x0032ffa8)
  13 0x7bc7fe7e call_thread_entry_point+0x11() in ntdll (0x0032ffc8)
  14 0x7bc54a2e start_process+0x1d(kernel_start=0x7b860500) [/home/julliard/wine/wine/dlls/ntdll/loader.c:2697] in ntdll (0x0032ffe8)
  15 0x6803128d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
  16 0x6803134b wine_switch_to_stack+0x2a(func=0x7bc54a10, arg=0x7b860500, stack=0x330000) [/home/julliard/wine/wine/libs/wine/port.c:59] in libwine.so.1 (0xffb103b8)
  17 0x7bc5a587 LdrInitializeThunk+0x3a6(kernel_start=<couldn't compute location>, unknown2=<couldn't compute location>, unknown3=<couldn't compute location>, unknown4=<couldn't compute location>) [/home/julliard/wine/wine/dlls/ntdll/loader.c:2753] in ntdll (0xffb10428)
  18 0x7b866ae0 __wine_kernel_init+0xbbf() [/home/julliard/wine/wine/dlls/kernel32/process.c:1257] in kernel32 (0xffb11338)
  19 0x7bc5ac53 __wine_process_init+0x182() [/home/julliard/wine/wine/dlls/ntdll/loader.c:2962] in ntdll (0xffb113c8)
  20 0x6802eeda wine_init+0x2b9(argc=0x3, argv=0xffb11904, error="", error_size=0x400) [/home/julliard/wine/wine/libs/wine/loader.c:952] in libwine.so.1 (0xffb11428)
  21 0x7bf00d3b main+0x7a(argc=<is not available>, argv=<is not available>) [/home/julliard/wine/wine/loader/main.c:237] in <wine-loader> (0xffb11868)
  22 0x682518c5 __libc_start_main+0xf4() in libc.so.6 (0x00000000)
0x6865c543 Context_CopyProperties+0x43 [/home/julliard/wine/wine/dlls/crypt32/context.c:99] in crypt32: movl	0xfffffff0(%ecx),%edx
99	    while (ptr && ptr->linked)

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list