From: Thorsten Engel Date: Sat, 7 May 2005 23:44:07 +0000 (+0000) Subject: cygwin_conv with length check X-Git-Tag: Release-7.0.0~8816 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5b3c6bee23840c7cb2764ffb75bc89ba10b632bb;p=bacula%2Fbacula cygwin_conv with length check git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@2009 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/bacula/src/findlib/attribs.c b/bacula/src/findlib/attribs.c index 90db4b21af..a9c692e076 100755 --- a/bacula/src/findlib/attribs.c +++ b/bacula/src/findlib/attribs.c @@ -659,13 +659,15 @@ void win_error(JCR *jcr, char *prefix, DWORD lerror) /* Cygwin API definition */ -extern "C" void cygwin_conv_to_win32_path(const char *path, char *win32_path); +extern "C" void cygwin_conv_to_win32_path(const char *path, char *win32_path, DWORD dwSize); void unix_name_to_win32(POOLMEM **win32_name, char *name) { /* One extra byte should suffice, but we double it */ - *win32_name = check_pool_memory_size(*win32_name, 2*strlen(name)+1); - cygwin_conv_to_win32_path(name, *win32_name); + /* add MAX_PATH bytes for VSS shadow copy name */ + DWORD dwSize = 2*strlen(name)+MAX_PATH; + *win32_name = check_pool_memory_size(*win32_name, dwSize); + cygwin_conv_to_win32_path(name, *win32_name, dwSize); } #endif /* HAVE_CYGWIN */