diff options
author | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-02-08 17:12:24 +0100 |
---|---|---|
committer | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-02-10 10:05:06 +0100 |
commit | e6591db6dc0a35ece8498e96f1dd04519007a555 (patch) | |
tree | e76a4f1a843eb58d79f41db0d2b9f4af7f5a0536 | |
parent | d48cc789ea075ba2745754035640ada4131b2119 (diff) | |
download | ceph-e6591db6dc0a35ece8498e96f1dd04519007a555.tar.gz |
wireshark: fix some memory leaks
Fix some memory leaks in packet-ceph.c. Error from cppcheck was:
[wireshark/ceph/packet-ceph.c:215]: (error) Memory leak: plop
[wireshark/ceph/packet-ceph.c:237]: (error) Memory leak: plop
[wireshark/ceph/packet-ceph.c:543]: (error) Memory leak: fsid_dec
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-rw-r--r-- | wireshark/ceph/packet-ceph.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/wireshark/ceph/packet-ceph.c b/wireshark/ceph/packet-ceph.c index 5d2c702251a..2a4e31fad3f 100644 --- a/wireshark/ceph/packet-ceph.c +++ b/wireshark/ceph/packet-ceph.c @@ -209,8 +209,8 @@ static gint ett_ceph_footer = -1; const char *ceph_cap_op_name(int op) { - char* plop = malloc(16*sizeof(char)); - sprintf(plop,"%i",op); + char* plop; + switch (op) { case CEPH_CAP_OP_GRANT: return "grant"; case CEPH_CAP_OP_REVOKE: return "revoke"; @@ -226,13 +226,17 @@ const char *ceph_cap_op_name(int op) case CEPH_CAP_OP_RELEASE: return "release"; case CEPH_CAP_OP_RENEW: return "renew"; } + + plop = malloc(16*sizeof(char)); + sprintf(plop,"%i",op); + return plop; } const char *ceph_mds_op_name(int op) { - char* plop = malloc(16*sizeof(char)); - sprintf(plop,"%i",op); + char* plop; + switch (op) { case CEPH_MDS_OP_LOOKUP: return "lookup"; case CEPH_MDS_OP_LOOKUPHASH: return "lookuphash"; @@ -261,6 +265,10 @@ const char *ceph_mds_op_name(int op) case CEPH_MDS_OP_SETFILELOCK: return "setfilelock"; case CEPH_MDS_OP_GETFILELOCK: return "getfilelock"; } + + plop = malloc(16*sizeof(char)); + printf(plop,"%i",op); + return plop; } @@ -533,13 +541,14 @@ static guint32 dissect_ceph_fsid(tvbuff_t *tvb, proto_tree *tree, guint32 offset fsid_dec = malloc(4*sizeof(guint32)); fsid = *(struct ceph_fsid *)tvb_get_ptr(tvb, offset, sizeof(struct ceph_fsid)); memcpy(fsid_dec,fsid.fsid,4*sizeof(guint32)); - proto_tree_add_text(tree, tvb, offset,sizeof(struct ceph_fsid), "fsid: %x-%x-%x-%x", + proto_tree_add_text(tree, tvb, offset, sizeof(struct ceph_fsid), "fsid: %x-%x-%x-%x", ntohl(fsid_dec[0]), ntohl(fsid_dec[1]), ntohl(fsid_dec[2]), ntohl(fsid_dec[3]) ); offset += sizeof(struct ceph_fsid); + free (fsid_dec); return offset; } |