From b757819289b014dbf706b26ca17f6cb584301ffc Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 8 Aug 2012 18:42:24 +0200 Subject: cluster/dht: don't leak upon GF_REALLOC failure Change-Id: I7dfabcc2981df5c5a1e1a54c3135400a60626cd1 BUG: 846755 Signed-off-by: Jim Meyering Reviewed-on: http://review.gluster.com/3798 Tested-by: Gluster Build System Reviewed-by: Anand Avati --- xlators/cluster/dht/src/dht-common.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index fbe18959a43..4d8d326ec25 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); -- cgit