]> git.sur5r.net Git - bacula/bacula/commitdiff
cygwin_conv with length check
authorThorsten Engel <thorsten.engel@matrix-computer.com>
Sat, 7 May 2005 23:44:07 +0000 (23:44 +0000)
committerThorsten Engel <thorsten.engel@matrix-computer.com>
Sat, 7 May 2005 23:44:07 +0000 (23:44 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@2009 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/findlib/attribs.c

index 90db4b21afccbf1ae623d67c0033d5f5470018b8..a9c692e0768b87f5033eb074e4d737a7bdf2acdd 100755 (executable)
@@ -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 */