summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2012-08-08 18:42:24 +0200
committerAnand Avati <avati@redhat.com>2012-08-19 10:14:31 -0700
commitb757819289b014dbf706b26ca17f6cb584301ffc (patch)
tree456052b131da67d9ab8d6a9377ed48d5d7934206
parent7daa85508314838ce8f0c2cb731827d0f92eb5ee (diff)
cluster/dht: don't leak upon GF_REALLOC failure
Change-Id: I7dfabcc2981df5c5a1e1a54c3135400a60626cd1 BUG: 846755 Signed-off-by: Jim Meyering <meyering@redhat.com> Reviewed-on: http://review.gluster.com/3798 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@redhat.com>
-rw-r--r--xlators/cluster/dht/src/dht-common.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
index fbe18959a..4d8d326ec 100644
--- a/xlators/cluster/dht/src/dht-common.c
+++ b/xlators/cluster/dht/src/dht-common.c
@@ -1728,13 +1728,14 @@ dht_vgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
if (local->xattr_val) {
plen = strlen (local->xattr_val);
if (plen) {
+ void *p;
/* extra byte(s) for \0 to be safe */
alloc_len += (plen + 2);
- local->xattr_val =
- GF_REALLOC (local->xattr_val,
- alloc_len);
- if (!local->xattr_val)
+ p = GF_REALLOC (local->xattr_val,
+ alloc_len);
+ if (!p)
goto out;
+ local->xattr_val = p;
}
strcat (local->xattr_val, value_got);