From: Bernhard Übelacker <bernhardu(a)mailbox.org> --- programs/cmd/directory.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/programs/cmd/directory.c b/programs/cmd/directory.c index 0fb9ad7fdd6..0839e32cbe7 100644 --- a/programs/cmd/directory.c +++ b/programs/cmd/directory.c @@ -269,6 +269,14 @@ static RETURN_CODE WCMD_list_directory (DIRECTORY_STACK *inputparms, int level, parms = inputparms; fd = xalloc(sizeof(WIN32_FIND_DATAW)); while (parms && lstrcmpW(inputparms->dirName, parms->dirName) == 0) { + + if ((lstrlenW(parms->dirName) + lstrlenW(parms->fileName) + 1) > ARRAY_SIZE(real_path)) { + WINE_TRACE("Path gets too long: '%s' '%s'\n", wine_dbgstr_w(parms->dirName), wine_dbgstr_w(parms->fileName)); + /* Move to next parm */ + parms = parms->next; + continue; + } + concurrentDirs++; /* Work out the full path + filename */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9577