[Bug 32467] New: Windows Sysinternals "bginfo" tool crashes due to incorrect sysparams PATH_ENTRY macro definition
wine-bugs at winehq.org
wine-bugs at winehq.org
Mon Dec 17 06:58:51 CST 2012
http://bugs.winehq.org/show_bug.cgi?id=32467
Bug #: 32467
Summary: Windows Sysinternals "bginfo" tool crashes due to
incorrect sysparams PATH_ENTRY macro definition
Product: Wine
Version: 1.5.19
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: user32
AssignedTo: wine-bugs at winehq.org
ReportedBy: focht at gmx.net
Classification: Unclassified
Hello folks,
retested some Windows Sysinternals (former "Sysinternals") tools.
"bginfo" crashes after applying settings (or if the timer runs out).
Download: http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx
--- snip ---
$ wine ./Bginfo.exe
...
Unhandled exception: page fault on write access to 0x000000e6 in 32-bit code
(0x004700f1).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:004700f1 ESP:0033da04 EBP:0033da10 EFLAGS:00010286( R- -- I S - -P- )
EAX:ffffffff EBX:0000003a ECX:1d2c7fe2 EDX:7bc9a7c0
ESI:0000003a EDI:00000000
Stack dump:
0x0033da04: 7eb58280 0000003a 00000001 0033dc00
0x0033da14: 7eabfd9b 7eb58280 00000000 0033dc38
0x0033da24: 00000000 0033dbf8 7e0ea4a8 0033dbf8
0x0033da34: 7e07c080 7c6bc0b0 0033dac4 7e07b6ec
0x0033da44: 00000040 7bcc26c8 0033db90 00000000
0x0033da54: 0033db00 f758e91e 0033da70 00000000
000c: sel=0067 base=00000000 limit=00000000 32-bit r-x
Backtrace:
=>0 0x004700f1 in bginfo (+0x700f1) (0x0033da10)
1 0x7eabfd9b SystemParametersInfoW+0x1185(uiAction=0x29, uiParam=0x1f8,
pvParam=0x33dc20, fWinIni=0)
[/home/focht/projects/wine/wine-git/dlls/user32/sysparams.c:1581] in user32
(0x0033dc00)
2 0x7ec2669b TOOLTIPS_InitSystemSettings+0x76(infoPtr=0x141998)
[/home/focht/projects/wine/wine-git/dlls/comctl32/tooltips.c:208] in comctl32
(0x0033de20)
3 0x7ec2bc19 TOOLTIPS_WinIniChange+0x10(infoPtr=0x141998)
[/home/focht/projects/wine/wine-git/dlls/comctl32/tooltips.c:2130] in comctl32
(0x0033de40)
4 0x7ec2c4f4 TOOLTIPS_WindowProc+0x82b(hwnd=0x50020, uMsg=0x1a, wParam=0x14,
lParam=0x7eb61348)
[/home/focht/projects/wine/wine-git/dlls/comctl32/tooltips.c:2333] in comctl32
(0x0033de90)
5 0x7eadf72e WINPROC_wrapper+0x19() in user32 (0x0033dec0)
6 0x7eadf883 call_window_proc+0xcd(hwnd=0x50020, msg=0x1a, wp=0x14,
lp=0x7eb61348, result=0x33dfb4, arg=0x7ec2bcc8)
[/home/focht/projects/wine/wine-git/dlls/user32/winproc.c:243] in user32
(0x0033df10)
7 0x7eae1b5d WINPROC_call_window+0x15f(hwnd=0x50020, msg=0x1a, wParam=0x14,
lParam=0x7eb61348, result=0x33dfb4, unicode=0x1,
mapping=WMCHAR_MAP_SENDMESSAGE)
[/home/focht/projects/wine/wine-git/dlls/user32/winproc.c:900] in user32
(0x0033df60)
8 0x7eaa0265 call_window_proc+0xbf(hwnd=0x50020, msg=0x1a, wparam=0x14,
lparam=0x7eb61348, unicode=0x1, same_thread=0x1,
mapping=WMCHAR_MAP_SENDMESSAGE)
[/home/focht/projects/wine/wine-git/dlls/user32/message.c:2211] in user32
(0x0033dfc0)
9 0x7eaa2fae send_message+0x138(info=0x33e03c, res_ptr=0x0(nil), unicode=0x1)
[/home/focht/projects/wine/wine-git/dlls/user32/message.c:3203] in user32
(0x0033e020)
10 0x7eaa3501 SendMessageTimeoutW+0x4a(hwnd=0x50020, msg=0x1a, wparam=0x14,
lparam=0x7eb61348, flags=0x2, timeout=0x7d0, res_ptr=0x0(nil))
[/home/focht/projects/wine/wine-git/dlls/user32/message.c:3357] in user32
(0x0033e070)
11 0x7ea9b2ad broadcast_message_callback+0xc4(hwnd=0x50020, lparam=0x33e16c)
[/home/focht/projects/wine/wine-git/dlls/user32/message.c:565] in user32
(0x0033e0c0)
12 0x7ead5603 EnumWindows+0x7b(lpEnumFunc=0x7ea9b1e8, lParam=0x33e16c)
[/home/focht/projects/wine/wine-git/dlls/user32/win.c:3277] in user32
(0x0033e0f0)
13 0x7eaa2eb0 send_message+0x3a(info=0x33e16c, res_ptr=0x0(nil), unicode=0x1)
[/home/focht/projects/wine/wine-git/dlls/user32/message.c:3190] in user32
(0x0033e150)
14 0x7eaa3501 SendMessageTimeoutW+0x4a(hwnd=0xffff, msg=0x1a, wparam=0x14,
lparam=0x7eb61348, flags=0x2, timeout=0x7d0, res_ptr=0x0(nil))
[/home/focht/projects/wine/wine-git/dlls/user32/message.c:3357] in user32
(0x0033e1a0)
15 0x7eabcf64 SYSPARAMS_NotifyChange+0x6c(uiAction=0x14, fWinIni=0x3)
[/home/focht/projects/wine/wine-git/dlls/user32/sysparams.c:504] in user32
(0x0033e1d0)
16 0x7eac2b3c SystemParametersInfoW+0x3f26(uiAction=0x14, uiParam=0,
pvParam=0x33e3f4, fWinIni=0x3)
[/home/focht/projects/wine/wine-git/dlls/user32/sysparams.c:2206] in user32
(0x0033e3c0)
17 0x7eac2d20 SystemParametersInfoA+0x15f(uiAction=0x14, uiParam=0,
pvParam=0x33e6a8, fuWinIni=0x3)
[/home/focht/projects/wine/wine-git/dlls/user32/sysparams.c:2236] in user32
(0x0033e630)
18 0x004075e3 in bginfo (+0x75e2) (0x80000001)
0x004700f1: movl %ebx,0xac(%esi)
...
--- snip ---
case SPI_GETNONCLIENTMETRICS
Examining entry structures:
--- snip ---
Wine-dbg>bt
Backtrace:
=>0 0x7eabe8d8 get_entry(ptr=0x7eb58280, int_param=0, ptr_param=0x33dc38)
[/home/focht/projects/wine/wine-git/dlls/user32/sysparams.c:1081] in user32
(0x0033dc00)
1 0x7ec2669b TOOLTIPS_InitSystemSettings+0x76(infoPtr=0x141998)
[/home/focht/projects/wine/wine-git/dlls/comctl32/tooltips.c:208] in comctl32
(0x0033de20)
2 0x7ec2bc19 TOOLTIPS_WinIniChange+0x10(infoPtr=0x141998)
[/home/focht/projects/wine/wine-git/dlls/comctl32/tooltips.c:2130] in comctl32
(0x0033de40)
3 0x7ec2c4f4 TOOLTIPS_WindowProc+0x82b(hwnd=0x100b0, uMsg=0x1a, wParam=0x14,
lParam=0x7eb61348)
[/home/focht/projects/wine/wine-git/dlls/comctl32/tooltips.c:2333] in comctl32
(0x0033de90)
...
Wine-dbg>x/10x ptr
0x7eb58280 entry_CAPTIONLOGFONT: 00470042 006e0049 006f0066 0062002e
0x7eb58290 entry_CAPTIONLOGFONT+0x10: 0070006d 00000000 000002bc fffffff5
0x7eb582a0 entry_CAPTIONLOGFONT+0x20: 00000000 00000000
...
Wine-dbg>p entry_BORDER
{hdr={get=0x7eabd996, set=0x7eabd8dd, init=0x7eabd94d, regval="BorderWidth",
mirror=0x0(nil), loaded=0x1}, val=0x1}
Wine-dbg>p entry_SCROLLWIDTH
{hdr={get=0x7eabd996, set=0x7eabd8dd, init=0x7eabd94d, regval="ScrollWidth",
mirror=0x0(nil), loaded=0x1}, val=0x10}
Wine-dbg>p entry_CAPTIONLOGFONT
{hdr={get=0x470042, set=0x6e0049, init=0x6f0066, regval="", mirror="",
loaded=0}, weight=0x2bc, val={lfHeight=0xfffffff5, lfWidth=0, lfEscapement=0,
lfOrientation=0, lfWeight=0x2bc, lfItalic=0, lfUnderline=0, lfStrikeOut=0,
lfCharSet=0, lfOutPrecision=0, lfClipPrecision=0, lfQuality=0,
lfPitchAndFamily='"', lfFaceName={0x4d, 0x53, 0x20, 0x53, 0x68, 0x65, 0x6c,
0x6c, 0x20, 0x44, 0x6c, 0x67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0}}}
Wine-dbg>p entry_SMCAPTIONWIDTH
{hdr={get=0x7eabd996, set=0x7eabd8dd, init=0x7eabd94d,
regval="SmCaptionWidth", mirror=0x0(nil), loaded=0x1}, val=0xd}
--- snip ---
entry_CAPTIONLOGFONT looks strange while others retrieved in
SPI_GETNONCLIENTMETRICS case are fine:
Dumping the entries preceding entry_CAPTIONLOGFONT:
--- snip ---
Wine-dbg>x/100x &entry_DESKWALLPAPER
0x7eb58240 entry_DESKWALLPAPER: 7eabe42d 7eabe4b7 7eabe52c 7eaf631a
0x7eb58250 entry_DESKWALLPAPER+0x10: 00000000 00000001 003a0043 0075005c
0x7eb58260 entry_USERPREFERENCESMASK: 00650073 00730072 0066005c 0063006f
0x7eb58270 entry_USERPREFERENCESMASK+0x10: 00740068 0054005c 006d0065 005c0070
0x7eb58280 entry_CAPTIONLOGFONT: 00470042 006e0049 006f0066 0062002e
0x7eb58290 entry_CAPTIONLOGFONT+0x10: 0070006d 00000000 000002bc fffffff5
0x7eb582a0 entry_CAPTIONLOGFONT+0x20: 00000000 00000000 00000000 000002bc
0x7eb582b0 entry_CAPTIONLOGFONT+0x30: 00000000 22000000 0053004d 00530020
0x7eb582c0 entry_CAPTIONLOGFONT+0x40: 00650068 006c006c 00440020 0067006c
0x7eb582d0 entry_CAPTIONLOGFONT+0x50: 00000000 00000000 00000000 00000000
0x7eb582e0 entry_CAPTIONLOGFONT+0x60: 00000000 00000000 00000000 00000000
0x7eb582f0 entry_CAPTIONLOGFONT+0x70: 00000000 00000000 00000000 00000000
...
Wine-dbg>p *&entry_DESKWALLPAPER
{hdr={get=0x7eabe42d, set=0x7eabe4b7, init=0x7eabe52c, regval="Wallpaper",
mirror=0x0(nil), loaded=0x1}, ptr=0x3a0043, size=0x75005c}
--- snip ---
Whoops, that structure type/layout seems wrong...
entry_DESKWALLPAPER:
--- snip ---
struct sysparam_entry
{
BOOL (*get)( union sysparam_all_entry *entry, UINT int_param, void
*ptr_param );
BOOL (*set)( union sysparam_all_entry *entry, UINT int_param, void
*ptr_param, UINT flags );
BOOL (*init)( union sysparam_all_entry *entry );
const WCHAR *regval;
const WCHAR *mirror;
BOOL loaded;
};
...
struct sysparam_path_entry
{
struct sysparam_entry hdr;
WCHAR path[MAX_PATH];
};
...
#define PATH_ENTRY(name) \
struct sysparam_binary_entry entry_##name = { { get_path_entry,
set_path_entry, init_path_entry, \
name ##_VALNAME } }
...
static PATH_ENTRY( DESKWALLPAPER );
--- snip ---
Typo in PATH_ENTRY macro: "struct sysparam_binary_entry" should be "struct
sysparam_path_entry".
http://source.winehq.org/git/wine.git/blob/51f936adc28187f0aaaacb8651b2dc3c68d3a137:/dlls/user32/sysparams.c#l1128
With that fix in place "bginfo" doesn't crash anymore.
Probably fixes other apps too ...
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list