[2/9] setupapi: Validate the cabinet filename parameter in SetupIterateCabinetA.

Alexandre Julliard julliard at winehq.org
Wed Jun 16 06:26:23 CDT 2010


Andrew Nguyen <anguyen at codeweavers.com> writes:

> ---
>  dlls/setupapi/setupcab.c        |    7 ++-
>  dlls/setupapi/tests/Makefile.in |    1 +
>  dlls/setupapi/tests/setupcab.c  |  121 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 128 insertions(+), 1 deletions(-)
>  create mode 100644 dlls/setupapi/tests/setupcab.c

It doesn't work here:

wine: Unhandled page fault on write access to 0x6864dd7b at address 0x686a1c89 (thread 003a), starting debugger...
Unhandled exception: page fault on write access to 0x6864dd7b in 32-bit code (0x686a1c89).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:686a1c89 ESP:0032f6e0 EBP:0032fa68 EFLAGS:00010246(  R- --  I  Z- -P- )
 EAX:6864dd7b EBX:686b2cfc ECX:00000000 EDX:00000024
 ESI:6865d68f EDI:0032f838
Stack dump:
0x0032f6e0:  0032f93c 6864dd7b 0032f838 0032fa4c
0x0032f6f0:  686a14e0 00000000 0032f724 ffffffff
0x0032f700:  0032fa40 0032f9e4 0032f768 7bc70be0
0x0032f710:  0000000e 00000002 00000001 0032f93c
0x0032f720:  00110060 acabfeed 00121100 00000000
0x0032f730:  00000000 00038080 2e366338 00706d74
Backtrace:
=>0 0x686a1c89 SetupIterateCabinetA+0xc9(CabinetFile="", Reserved=0, MsgHandler=0x6864b9a0, Context=0x0(nil)) [/home/julliard/wine/wine/dlls/setupapi/setupcab.c:588] in setupapi (0x0032fd38)
  1 0x6864bd95 test_invalid_parametersA+0x384() [/home/julliard/wine/wine/dlls/setupapi/tests/setupcab.c:108] in setupapi_test (0x0032fd88)
  2 0x6864df0e run_test+0x14d(name=<is not available>) [/home/julliard/wine/wine/dlls/setupapi/tests/../../../include/wine/test.h:557] in setupapi_test (0x0032fe48)
  3 0x6864e0e2 main+0x131(argc=<couldn't compute location>, argv=<couldn't compute location>) [/home/julliard/wine/wine/dlls/setupapi/tests/../../../include/wine/test.h:607] in setupapi_test (0x0032fe90)
  4 0x6864e27c __wine_spec_exe_entry+0x7b(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/winecrt0/exe_entry.c:36] in setupapi_test (0x0032fea8)
  5 0x7b854ebc call_process_entry+0xb() in kernel32 (0x0032fee8)
  6 0x7b85756b start_process+0x5a(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/kernel32/process.c:996] in kernel32 (0x0032fef8)
  7 0x7bc71a40 call_thread_func+0xb() in ntdll (0x0032ffc8)
  8 0x7bc71c10 call_thread_entry_point+0x6f(entry=0x7b857510, arg=0x7ffdf000) [/home/julliard/wine/wine/dlls/ntdll/signal_i386.c:2466] in ntdll (0x0032ffe8)
  9 0x7bc4d5ca start_process+0x29(kernel_start=0x7b857510) [/home/julliard/wine/wine/dlls/ntdll/loader.c:2612] in ntdll (0x00000000)
0x686a1c89 SetupIterateCabinetA+0xc9 [/home/julliard/wine/wine/dlls/setupapi/setupcab.c:588] in setupapi: movb	$0x0,0x0(%eax)
588	    *p = '\0';

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list