]> git.sur5r.net Git - bacula/bacula/commitdiff
Cleanup win32 compat code
authorEric Bollengier <eric@eb.homelinux.org>
Tue, 19 Jan 2010 16:17:26 +0000 (17:17 +0100)
committerEric Bollengier <eric@eb.homelinux.org>
Tue, 19 Jan 2010 16:17:26 +0000 (17:17 +0100)
bacula/src/win32/compat/compat.cpp

index 0b806ce9defa2763e706c76cde4a00083b8c3b16..1fc161e001defc01a735f7f1bb085ca6a7c0f123 100644 (file)
@@ -1161,6 +1161,7 @@ opendir(const char *path)
 {
     /* enough space for VSS !*/
     int max_len = strlen(path) + MAX_PATH;
+    char *tspec = NULL;
     _dir *rval = NULL;
     if (path == NULL) {
        errno = ENOENT;
@@ -1169,10 +1170,15 @@ opendir(const char *path)
 
     Dmsg1(100, "Opendir path=%s\n", path);
     rval = (_dir *)malloc(sizeof(_dir));
+    if (!rval) {
+       goto err;
+    }
     memset (rval, 0, sizeof (_dir));
-    if (rval == NULL) return NULL;
-    char *tspec = (char *)malloc(max_len);
-    if (tspec == NULL) return NULL;
+
+    tspec = (char *)malloc(max_len);
+    if (!tspec) { 
+       goto err;
+    }
 
     conv_unix_to_win32_path(path, tspec, max_len);
     Dmsg1(100, "win32 path=%s\n", tspec);
@@ -1222,8 +1228,12 @@ opendir(const char *path)
     return (DIR *)rval;
 
 err:
-    free((void *)rval->spec);
-    free(rval);
+    if (rval) {
+       free(rval);
+    }
+    if (tspec) {
+       free(tspec);
+    }
     errno = b_errno_win32;
     return NULL;
 }