From: Li Wang Date: Thu, 7 Nov 2013 02:44:30 +0000 (+0800) Subject: Ceph: Fix memory leak in chain_flistxattr() X-Git-Tag: v0.72~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=082e7c9eedeeb9a588b4ae9ec4d9cf1343e9704d;p=ceph.git Ceph: Fix memory leak in chain_flistxattr() Free allocated memory before return. Signed-off-by: Li Wang Reviewed-by: Sage Weil --- diff --git a/src/os/chain_xattr.cc b/src/os/chain_xattr.cc index 8ca815689ed3..c020c9db8439 100644 --- a/src/os/chain_xattr.cc +++ b/src/os/chain_xattr.cc @@ -388,6 +388,10 @@ done: int chain_flistxattr(int fd, char *names, size_t len) { int r; + char *p; + const char * end; + char *dest; + char *dest_end; if (!len) return sys_flistxattr(fd, names, len) * 2; @@ -403,12 +407,12 @@ int chain_flistxattr(int fd, char *names, size_t len) { r = sys_flistxattr(fd, full_buf, total_len); if (r < 0) - return r; + goto done; - char *p = full_buf; - const char *end = full_buf + r; - char *dest = names; - char *dest_end = names + len; + p = full_buf; + end = full_buf + r; + dest = names; + dest_end = names + len; while (p < end) { char name[CHAIN_XATTR_MAX_NAME_LEN * 2 + 16];