[Gluster-devel] [3.6.0] New Defects reported by Coverity Scan for GlusterFS

Lalatendu Mohanty lmohanty at redhat.com
Thu Sep 25 10:15:07 UTC 2014


FYI,

This run done on the 3.6 branch.

To fix these Coverity issues , please check the below link for guidelines:
http://www.gluster.org/community/documentation/index.php/Fixing_Issues_Reported_By_Tools_For_Static_Code_Analysis#Coverity

Thanks,
Lala
-------- Original Message --------
Subject: 	New Defects reported by Coverity Scan for GlusterFS
Date: 	Thu, 25 Sep 2014 02:27:13 -0700
From: 	scan-admin at coverity.com



Hi,


Please find the latest report on new defect(s) introduced to GlusterFS found with Coverity Scan.

Defect(s) Reported-by: Coverity Scan
Showing 20 of 50 defect(s)


** CID 1124760:  Resource leak  (RESOURCE_LEAK)
/xlators/cluster/afr/src/afr-inode-read.c: 1043 in afr_fgetxattr_pathinfo_cbk()

** CID 1124795:  Resource leak  (RESOURCE_LEAK)
/xlators/protocol/client/src/client-helpers.c: 237 in unserialize_rsp_direntp()

** CID 1174824:  Resource leak  (RESOURCE_LEAK)
/xlators/mgmt/glusterd/src/glusterd-store.c: 4112 in glusterd_store_retrieve_peers()

** CID 1124533:  Explicit null dereferenced  (FORWARD_NULL)
/xlators/protocol/client/src/client-rpc-fops.c: 5699 in client3_3_readdir()

** CID 1124749:  Resource leak  (RESOURCE_LEAK)
/xlators/cluster/afr/src/afr-common.c: 2229 in __afr_fd_ctx_set()

** CID 1128922:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 167 in bd_lookup_cbk()

** CID 1128921:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 1167 in bd_offload_getx_cbk()

** CID 1128920:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 248 in bd_readdirp_cbk()

** CID 1128919:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 1963 in bd_setattr()

** CID 1128918:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 1062 in bd_setx_stat_cbk()

** CID 1128917:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 1609 in bd_trunc_setxattr_cbk()

** CID 1124788:  Resource leak  (RESOURCE_LEAK)
/xlators/mgmt/glusterd/src/glusterd-mountbroker.c: 338 in make_ghadoop_mountspec()

** CID 1128916:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd-helper.c: 347 in bd_validate_bd_xattr()

** CID 1124789:  Resource leak  (RESOURCE_LEAK)
/xlators/mgmt/glusterd/src/glusterd-mountbroker.c: 692 in glusterd_do_mount()

** CID 1124759:  Resource leak  (RESOURCE_LEAK)
/xlators/debug/io-stats/src/io-stats.c: 2926 in init()
/xlators/performance/io-threads/src/io-threads.c: 1012 in init()
/xlators/mgmt/glusterd/src/glusterd.c: 1559 in init()

** CID 1124787:  Resource leak  (RESOURCE_LEAK)
/xlators/cluster/afr/src/afr-inode-read.c: 1163 in afr_getxattr_pathinfo_cbk()

** CID 1124745:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/posix/src/posix.c: 5867 in init()

** CID 1124731:  Resource leak  (RESOURCE_LEAK)
/xlators/mgmt/glusterd/src/glusterd-brick-ops.c: 990 in _glusterd_restart_gsync_session()

** CID 1124776:  Resource leak  (RESOURCE_LEAK)
/xlators/mgmt/glusterd/src/glusterd-volgen.c: 3227 in nfs_option_handler()

** CID 1124770:  Resource leak  (RESOURCE_LEAK)
/rpc/rpc-lib/src/rpc-transport.c: 341 in rpc_transport_load()


________________________________________________________________________________________________________
*** CID 1124760:  Resource leak  (RESOURCE_LEAK)
/xlators/cluster/afr/src/afr-inode-read.c: 1043 in afr_fgetxattr_pathinfo_cbk()
1037                                       local->op_errno, nxattr, local->xdata_rsp);
1038
1039                     if (nxattr)
1040                             dict_unref (nxattr);
1041             }
1042
>>>     CID 1124760:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "xattr_serz" going out of scope leaks the storage it points to.
1043             return ret;
1044     }
1045
1046     int32_t
1047     afr_getxattr_pathinfo_cbk (call_frame_t *frame, void *cookie,
1048                                xlator_t *this, int32_t op_ret, int32_t op_errno,

________________________________________________________________________________________________________
*** CID 1124795:  Resource leak  (RESOURCE_LEAK)
/xlators/protocol/client/src/client-helpers.c: 237 in unserialize_rsp_direntp()
231
232                     trav = trav->nextentry;
233             }
234
235             ret = 0;
236     out:
>>>     CID 1124795:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "buf" going out of scope leaks the storage it points to.
237             return ret;
238     }
239
240     int
241     clnt_readdirp_rsp_cleanup (gfs3_readdirp_rsp *rsp)
242     {

________________________________________________________________________________________________________
*** CID 1174824:  Resource leak  (RESOURCE_LEAK)
/xlators/mgmt/glusterd/src/glusterd-store.c: 4112 in glusterd_store_retrieve_peers()
4106                     glusterd_peerinfo_cleanup (peerinfo);
4107
4108             if (dir)
4109                     closedir (dir);
4110             gf_log ("", GF_LOG_DEBUG, "Returning with %d", ret);
4111
>>>     CID 1174824:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
4112             return ret;
4113     }
4114
4115     /* Bricks for snap volumes are hosted at /var/run/gluster/snaps
4116      * When a volume is restored, it points to the bricks of the snap
4117      * volume it was restored from. Hence on a node restart these

________________________________________________________________________________________________________
*** CID 1124533:  Explicit null dereferenced  (FORWARD_NULL)
/xlators/protocol/client/src/client-rpc-fops.c: 5699 in client3_3_readdir()
5693             }
5694
5695             req.size = args->size;
5696             req.offset = args->offset;
5697             req.fd = remote_fd;
5698
>>>     CID 1124533:  Explicit null dereferenced  (FORWARD_NULL)
>>>     Dereferencing null pointer "local".
5699             local->cmd = remote_fd;
5700
5701             memcpy (req.gfid, args->fd->inode->gfid, 16);
5702             GF_PROTOCOL_DICT_SERIALIZE (this, args->xdata, (&req.xdata.xdata_val),
5703                                         req.xdata.xdata_len, op_errno, unwind);
5704

________________________________________________________________________________________________________
*** CID 1124749:  Resource leak  (RESOURCE_LEAK)
/xlators/cluster/afr/src/afr-common.c: 2229 in __afr_fd_ctx_set()
2223
2224             ret = __fd_ctx_set (fd, this, (uint64_t)(long) fd_ctx);
2225             if (ret)
2226                     gf_log (this->name, GF_LOG_DEBUG,
2227                             "failed to set fd ctx (%p)", fd);
2228     out:
>>>     CID 1124749:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "fd_ctx" going out of scope leaks the storage it points to.
2229             return ret;
2230     }
2231
2232
2233     int
2234     afr_fd_ctx_set (xlator_t *this, fd_t *fd)

________________________________________________________________________________________________________
*** CID 1128922:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 167 in bd_lookup_cbk()
161             dict_del (xattr, GF_CONTENT_KEY);
162             memcpy (buf, &bdatt->iatt, sizeof (struct iatt));
163
164     out:
165             BD_STACK_UNWIND (lookup, frame, op_ret, op_errno, inode, buf,
166                              xattr, postparent);
>>>     CID 1128922:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "type" going out of scope leaks the storage it points to.
167             return 0;
168     }
169
170     /*
171      * bd_lookup: Issues posix_lookup to find out if file is mapped to BD
172      * bd_lookup -> posix_lookup -> bd_lookup_cbk

________________________________________________________________________________________________________
*** CID 1128921:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 1167 in bd_offload_getx_cbk()
1161             }
1162
1163             STACK_WIND (frame, bd_offload_setx_cbk, FIRST_CHILD(this),
1164                         FIRST_CHILD(this)->fops->setxattr,
1165                         local->dloc, local->dict, 0, NULL);
1166
>>>     CID 1128921:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "type" going out of scope leaks the storage it points to.
1167             return 0;
1168
1169     out:
1170             if (local->fd)
1171                     BD_STACK_UNWIND (fsetxattr, frame, -1, op_errno, NULL);
1172             else

________________________________________________________________________________________________________
*** CID 1128920:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 248 in bd_readdirp_cbk()
242                             GF_FREE (type);
243                     }
244             }
245
246     out:
247             BD_STACK_UNWIND (readdirp, frame, op_ret, op_errno, entries, xdata);
>>>     CID 1128920:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "type" going out of scope leaks the storage it points to.
248             return 0;
249     }
250
251     /*
252      * bd_readdirp: In bd_readdirp_cbk if the file and BD_XATTR_SIZE is set
253      * ia_size is updated with the LV(BD_XATTR_SIZE) size

________________________________________________________________________________________________________
*** CID 1128919:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 1963 in bd_setattr()
1957             *ck_valid = valid;
1958
1959             STACK_WIND_COOKIE (frame, bd_setattr_cbk, ck_valid, FIRST_CHILD(this),
1960                                FIRST_CHILD(this)->fops->setattr,
1961                                loc, stbuf, valid, xdata);
1962
>>>     CID 1128919:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "ck_valid" going out of scope leaks the storage it points to.
1963             return 0;
1964     out:
1965             BD_STACK_UNWIND (setattr, frame, -1, ENOMEM, NULL, NULL, xdata);
1966             return 0;
1967     }
1968

________________________________________________________________________________________________________
*** CID 1128918:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 1062 in bd_setx_stat_cbk()
1056                                 local->fd, local->dict, 0, NULL);
1057             else
1058                     STACK_WIND (frame, bd_setx_setx_cbk, FIRST_CHILD(this),
1059                                 FIRST_CHILD(this)->fops->setxattr,
1060                                 &local->loc, local->dict, 0, NULL);
1061
>>>     CID 1128918:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "param" going out of scope leaks the storage it points to.
1062             return 0;
1063
1064     out:
1065             if (local->fd)
1066                     BD_STACK_UNWIND (fsetxattr, frame, -1, op_errno, xdata);
1067             else

________________________________________________________________________________________________________
*** CID 1128917:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd.c: 1609 in bd_trunc_setxattr_cbk()
1603             else
1604                     STACK_WIND (frame, bd_trunc_setxattr_setx_cbk,
1605                                 FIRST_CHILD(this),
1606                                 FIRST_CHILD(this)->fops->setxattr,
1607                                 &local->loc, local->dict, 0, NULL);
1608
>>>     CID 1128917:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "bd" going out of scope leaks the storage it points to.
1609             return 0;
1610     out:
1611             if (local->fd)
1612                     BD_STACK_UNWIND (ftruncate, frame, -1, EIO, NULL, NULL, NULL);
1613             else
1614                     BD_STACK_UNWIND (truncate, frame, -1, EIO, NULL, NULL, NULL);

________________________________________________________________________________________________________
*** CID 1124788:  Resource leak  (RESOURCE_LEAK)
/xlators/mgmt/glusterd/src/glusterd-mountbroker.c: 338 in make_ghadoop_mountspec()
332
333             ret = gf_asprintf (&hadoop_mnt_desc, hadoop_mnt_desc_template,
334                                server, GF_CLIENT_PID_HADOOP, volname, user);
335             if (ret == -1)
336                     return ret;
337
>>>     CID 1124788:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "hadoop_mnt_desc" going out of scope leaks the storage it points to.
338             return parse_mount_pattern_desc (mspec, hadoop_mnt_desc);
339     }
340
341     static gf_boolean_t
342     match_comp (char *str, char *patcomp)
343     {

________________________________________________________________________________________________________
*** CID 1128916:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/bd/src/bd-helper.c: 347 in bd_validate_bd_xattr()
341             }
342
343             /* Destination file does not exist */
344             if (stat (path, &stbuf)) {
345                     gf_log (this->name, GF_LOG_WARNING,
346                             "lstat failed for path %s", path);
>>>     CID 1128916:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "path" going out of scope leaks the storage it points to.
347                     return -1;
348             }
349
350             vg = lvm_vg_open (priv->handle, priv->vg, "r", 0);
351             if (!vg) {
352                     gf_log (this->name, GF_LOG_WARNING,

________________________________________________________________________________________________________
*** CID 1124789:  Resource leak  (RESOURCE_LEAK)
/xlators/mgmt/glusterd/src/glusterd-mountbroker.c: 692 in glusterd_do_mount()
686                     ret = 0;
687                     *path = cookie;
688             }
689
690             GF_FREE (mtptemp);
691
>>>     CID 1124789:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "mntlink" going out of scope leaks the storage it points to.
692             return ret;

________________________________________________________________________________________________________
*** CID 1124759:  Resource leak  (RESOURCE_LEAK)
/xlators/debug/io-stats/src/io-stats.c: 2926 in init()
2920     out:
2921             if (!this->private) {
2922                     ios_conf_destroy (conf);
2923                     ret = -1;
2924             }
2925
>>>     CID 1124759:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "conf" going out of scope leaks the storage it points to.
2926             return ret;
2927     }
2928
2929     void
2930     fini (xlator_t *this)
2931     {
/xlators/performance/io-threads/src/io-threads.c: 1012 in init()
1006     	this->private = conf;
1007             ret = 0;
1008     out:
1009             if (ret)
1010                     GF_FREE (conf);
1011
>>>     CID 1124759:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "conf" going out of scope leaks the storage it points to.
1012     	return ret;
1013     }
1014
1015
1016     void
1017     fini (xlator_t *this)
/xlators/mgmt/glusterd/src/glusterd.c: 1559 in init()
1553                             GF_FREE (this->private);
1554                             this->private = NULL;
1555                     }
1556
1557             }
1558
>>>     CID 1124759:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "conf" going out of scope leaks the storage it points to.
1559             return ret;
1560     }
1561
1562
1563
1564

________________________________________________________________________________________________________
*** CID 1124787:  Resource leak  (RESOURCE_LEAK)
/xlators/cluster/afr/src/afr-inode-read.c: 1163 in afr_getxattr_pathinfo_cbk()
1157                                       local->op_errno, nxattr, local->xdata_rsp);
1158
1159                     if (nxattr)
1160                             dict_unref (nxattr);
1161             }
1162
>>>     CID 1124787:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "xattr_serz" going out of scope leaks the storage it points to.
1163             return ret;
1164     }
1165
1166     static int
1167     afr_aggregate_stime_xattr (dict_t *this, char *key, data_t *value, void *data)
1168     {

________________________________________________________________________________________________________
*** CID 1124745:  Resource leak  (RESOURCE_LEAK)
/xlators/storage/posix/src/posix.c: 5867 in init()
5861             }
5862     #endif
5863
5864             GF_OPTION_INIT ("batch-fsync-delay-usec", _private->batch_fsync_delay_usec,
5865                             uint32, out);
5866     out:
>>>     CID 1124745:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "_private" going out of scope leaks the storage it points to.
5867             return ret;
5868     }
5869
5870     void
5871     fini (xlator_t *this)
5872     {

________________________________________________________________________________________________________
*** CID 1124731:  Resource leak  (RESOURCE_LEAK)
/xlators/mgmt/glusterd/src/glusterd-brick-ops.c: 990 in _glusterd_restart_gsync_session()
984             if (ret)
985                     gf_log ("", GF_LOG_ERROR,
986                             "Unable to restart gsync session.");
987
988     out:
989             gf_log ("", GF_LOG_DEBUG, "Returning %d.", ret);
>>>     CID 1124731:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "path_list" going out of scope leaks the storage it points to.
990             return ret;
991     }
992
993     /* op-sm */
994
995     int

________________________________________________________________________________________________________
*** CID 1124776:  Resource leak  (RESOURCE_LEAK)
/xlators/mgmt/glusterd/src/glusterd-volgen.c: 3227 in nfs_option_handler()
3221                     ret = gf_asprintf (&aa, "nfs3.%s.export-dir",
3222                                             volinfo->volname);
3223
3224                     if (ret != -1) {
3225                             ret = gf_canonicalize_path (vme->value);
3226                             if (ret)
>>>     CID 1124776:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "aa" going out of scope leaks the storage it points to.
3227                                     return -1;
3228
3229                             ret = xlator_set_option (xl, aa, vme->value);
3230                             GF_FREE (aa);
3231                     }
3232

________________________________________________________________________________________________________
*** CID 1124770:  Resource leak  (RESOURCE_LEAK)
/rpc/rpc-lib/src/rpc-transport.c: 341 in rpc_transport_load()
335     	}
336
337             return_trans = trans;
338
339             GF_FREE (name);
340
>>>     CID 1124770:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "vol_opt" going out of scope leaks the storage it points to.
341     	return return_trans;
342
343     fail:
344             if (trans) {
345                     GF_FREE (trans->name);
346


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, http://scan.coverity.com/projects/987?tab=overview

To unsubscribe from the email notification for new defects, http://scan5.coverity.com/cgi-bin/unsubscribe.py





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-devel/attachments/20140925/4949a50a/attachment-0001.html>


More information about the Gluster-devel mailing list