[PATCH 0/1] MR8371: msvcrt: Fix allocated buffer size in _getdcwd.
From: Piotr Caban <piotr(a)codeweavers.com> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58363 --- dlls/msvcrt/dir.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dlls/msvcrt/dir.c b/dlls/msvcrt/dir.c index 324e3096c72..d8654f48611 100644 --- a/dlls/msvcrt/dir.c +++ b/dlls/msvcrt/dir.c @@ -839,10 +839,14 @@ char* CDECL _getdcwd(int drive, char * buf, int size) if (!_wgetdcwd(drive, dirW, ARRAY_SIZE(dirW))) return NULL; - if (!buf) return astrdupw_utf8(dirW); len = convert_wcs_to_acp_utf8(dirW, NULL, 0); if (!len) return NULL; - if (len > size) + if (!buf) + { + if (size < len) size = len; + if (!(buf = malloc(size))) return NULL; + } + else if (len > size) { *_errno() = ERANGE; return NULL; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8371
participants (2)
-
Piotr Caban -
Piotr Caban (@piotr)