Whamcloud - gitweb
LU-3088 build: fix 'resource leak' errors
authorSebastien Buisson <sebastien.buisson@bull.net>
Tue, 2 Apr 2013 14:55:14 +0000 (16:55 +0200)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 31 May 2013 16:35:12 +0000 (12:35 -0400)
Fix 'resource leak' defects found by Coverity version 6.5.1:
Resource leak (RESOURCE_LEAK)
Variable going out of scope leaks the storage it points to.

Signed-off-by: Sebastien Buisson <sebastien.buisson@bull.net>
Change-Id: I12312b081ea735118d5375c0dc9c20ead5ed9286
Reviewed-on: http://review.whamcloud.com/5918
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: John Hammond <johnlockwoodhammond@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
lustre/ofd/ofd_dev.c
lustre/osd-zfs/osd_oi.c
lustre/osp/osp_dev.c

index 6fde94e..0719d7d 100644 (file)
@@ -553,7 +553,7 @@ int ofd_fid_init(const struct lu_env *env, struct ofd_device *ofd)
 
        OBD_ALLOC_PTR(ss->ss_client_seq);
        if (ss->ss_client_seq == NULL)
-               GOTO(out_free, -ENOMEM);
+               GOTO(out_free, rc = -ENOMEM);
 
        snprintf(name, strlen(obd_name) + 6, "%p-super", obd_name);
        rc = seq_client_init(ss->ss_client_seq, NULL, LUSTRE_SEQ_DATA,
index 918cbe9..36e588d 100644 (file)
@@ -350,7 +350,7 @@ static struct osd_seq *osd_find_or_add_seq(const struct lu_env *env,
                sprintf(key, "d%d", i);
                rc = osd_oi_find_or_create(env, osd, odb, key, &sdb);
                if (rc)
-                       GOTO(out, osd_seq = ERR_PTR(rc));
+                       GOTO(out, rc);
                osd_seq->os_compat_dirs[i] = sdb;
        }
 
index a5819ca..cc4a1ae 100644 (file)
@@ -665,7 +665,7 @@ static int osp_init0(const struct lu_env *env, struct osp_device *m,
 
                OBD_ALLOC(cli->cl_rpc_lock, sizeof(*cli->cl_rpc_lock));
                if (!cli->cl_rpc_lock)
-                       RETURN(-ENOMEM);
+                       GOTO(out_fini, rc = -ENOMEM);
                osp_init_rpc_lock(cli->cl_rpc_lock);
        }