From 4dcc066ed7789b52d9b55e7f1dab4dc622aebbb9 Mon Sep 17 00:00:00 2001 From: Gunnar Dalsnes Date: Mon, 21 Mar 2005 17:11:48 +0000 Subject: [PATCH] CopyAcceleratorTableA: dont access lpAccelDst it its NULL (w3seek) svn path=/trunk/; revision=14254 --- reactos/lib/user32/windows/accel.c | 44 ++++++++++++++---------------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/reactos/lib/user32/windows/accel.c b/reactos/lib/user32/windows/accel.c index 5840e2a5e9b..39495484956 100644 --- a/reactos/lib/user32/windows/accel.c +++ b/reactos/lib/user32/windows/accel.c @@ -285,38 +285,34 @@ HACCEL WINAPI CreateAcceleratorTableW(LPACCEL lpaccl, int cEntries) } -/* - * @implemented - */ int WINAPI CopyAcceleratorTableA ( HACCEL hAccelSrc, - LPACCEL lpAccelDst, + LPACCEL lpAccelDst, /* can be NULL */ int cAccelEntries ) { - int i; - - cAccelEntries = CopyAcceleratorTableW(hAccelSrc, lpAccelDst, cAccelEntries); + int i; - if(cAccelEntries == 0) return 0; + cAccelEntries = CopyAcceleratorTableW(hAccelSrc, lpAccelDst, cAccelEntries); + + if (lpAccelDst == NULL) return cAccelEntries; - for(i = 0; i < cAccelEntries; ++ i) - if(!(lpAccelDst[i].fVirt & FVIRTKEY)) - { - NTSTATUS nErrCode = RtlUnicodeToMultiByteN - ( - (PCHAR)&lpAccelDst[i].key, - sizeof(lpAccelDst[i].key), - NULL, - (PWCHAR)&lpAccelDst[i].key, - sizeof(lpAccelDst[i].key) - ); - - if(!NT_SUCCESS(nErrCode)) lpAccelDst[i].key = 0; - } - - return cAccelEntries; + for(i = 0; i < cAccelEntries; ++ i) + if(!(lpAccelDst[i].fVirt & FVIRTKEY)) + { + NTSTATUS nErrCode = RtlUnicodeToMultiByteN( + (PCHAR)&lpAccelDst[i].key, + sizeof(lpAccelDst[i].key), + NULL, + (PWCHAR)&lpAccelDst[i].key, + sizeof(lpAccelDst[i].key) + ); + + if(!NT_SUCCESS(nErrCode)) lpAccelDst[i].key = 0; + } + + return cAccelEntries; }