Aric Stewart : kernel32: Set last error to ERROR_INSUFFICIENT_BUFFER in LCMapString when the sort key buffer is too small .
Module: wine Branch: master Commit: 6a8219a6b1f2a4703179cd2b514a2133e3342bc1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6a8219a6b1f2a4703179cd2b51... Author: Aric Stewart <aric(a)codeweavers.com> Date: Thu Oct 25 14:53:01 2007 -0500 kernel32: Set last error to ERROR_INSUFFICIENT_BUFFER in LCMapString when the sort key buffer is too small. --- dlls/kernel32/locale.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c index 1ecda49..ea39c52 100644 --- a/dlls/kernel32/locale.c +++ b/dlls/kernel32/locale.c @@ -2349,6 +2349,7 @@ INT WINAPI LCMapStringW(LCID lcid, DWORD flags, LPCWSTR src, INT srclen, if (flags & LCMAP_SORTKEY) { + INT ret; if (src == dst) { SetLastError(ERROR_INVALID_FLAGS); @@ -2360,7 +2361,10 @@ INT WINAPI LCMapStringW(LCID lcid, DWORD flags, LPCWSTR src, INT srclen, TRACE("(0x%04x,0x%08x,%s,%d,%p,%d)\n", lcid, flags, debugstr_wn(src, srclen), srclen, dst, dstlen); - return wine_get_sortkey(flags, src, srclen, (char *)dst, dstlen); + ret = wine_get_sortkey(flags, src, srclen, (char *)dst, dstlen); + if (ret == 0) + SetLastError(ERROR_INSUFFICIENT_BUFFER); + return ret; } /* SORT_STRINGSORT must be used exclusively with LCMAP_SORTKEY */ @@ -2497,6 +2501,8 @@ INT WINAPI LCMapStringA(LCID lcid, DWORD flags, LPCSTR src, INT srclen, goto map_string_exit; } ret = wine_get_sortkey(flags, srcW, srclenW, dst, dstlen); + if (ret == 0) + SetLastError(ERROR_INSUFFICIENT_BUFFER); goto map_string_exit; }
participants (1)
-
Alexandre Julliard