]> sourceware.org Git - dm.git/commitdiff
coverity fixes
authorAlasdair Kergon <agk@redhat.com>
Wed, 10 May 2006 16:23:41 +0000 (16:23 +0000)
committerAlasdair Kergon <agk@redhat.com>
Wed, 10 May 2006 16:23:41 +0000 (16:23 +0000)
WHATS_NEW
lib/libdm-common.c
lib/libdm-file.c

index 7726d0347b666a946afea2de83bf8b225323f6c8..b4be42bac250e3a4cf9cc9e7c05e134adc4b12be 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 1.02.06 - 
 =============================
+  Fix leaks in error paths found by coverity.
   Increase dmsetup line buffer to 4k.
 
 Version 1.02.05 - 19 Apr 2006
index 0b2e3c24a1bf3e2197a77fc8a77812b2ca30cdae..71b11ff6dd65db83f0cfa3d9af16e4c22fd7f1f9 100644 (file)
@@ -101,8 +101,10 @@ struct dm_task *dm_task_create(int type)
                return NULL;
        }
 
-       if (!dm_check_version())
+       if (!dm_check_version()) {
+               dm_free(dmt);
                return NULL;
+       }
 
        memset(dmt, 0, sizeof(*dmt));
 
index dbbca59992d52f7507e3a740fed21e3672a430e5..54c38b4e85400c68f5c07a42605f59f4ca435b4b 100644 (file)
@@ -23,7 +23,7 @@
 static int _create_dir_recursive(const char *dir)
 {
        char *orig, *s;
-       int rc;
+       int rc, r = 0;
 
        log_verbose("Creating directory \"%s\"", dir);
        /* Create parent directories */
@@ -35,22 +35,24 @@ static int _create_dir_recursive(const char *dir)
                        if (rc < 0 && errno != EEXIST) {
                                log_error("%s: mkdir failed: %s", orig,
                                          strerror(errno));
-                               dm_free(orig);
-                               return 0;
+                               goto out;
                        }
                }
                *s++ = '/';
        }
-       dm_free(orig);
 
        /* Create final directory */
        rc = mkdir(dir, 0777);
        if (rc < 0 && errno != EEXIST) {
                log_error("%s: mkdir failed: %s", orig,
                          strerror(errno));
-               return 0;
+               goto out;
        }
-       return 1;
+
+       r = 1;
+out:
+       dm_free(orig);
+       return r;
 }
 
 int create_dir(const char *dir)
This page took 0.030292 seconds and 5 git commands to generate.