diff options
author | Raghavendra G <raghavendra@gluster.com> | 2009-08-26 05:08:18 +0000 |
---|---|---|
committer | Anand V. Avati <avati@dev.gluster.com> | 2009-09-02 10:29:56 -0700 |
commit | bc1bacb14650809f4685025c9fb4b799f9510df9 (patch) | |
tree | 88216793363dc0b07f99d53d16f77e4dac1c97da /libglusterfsclient | |
parent | 4d479650245d15e6bb5d6993919ebd3eaa68f089 (diff) |
libglusterfsclient: don't use pointer returned by basename while freeing allocated memory.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 228 (Segmentation fault in glusterfs_getxattr)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=228
Diffstat (limited to 'libglusterfsclient')
-rwxr-xr-x | libglusterfsclient/src/libglusterfsclient.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/libglusterfsclient/src/libglusterfsclient.c b/libglusterfsclient/src/libglusterfsclient.c index 24e73a827..d8236cf3f 100755 --- a/libglusterfsclient/src/libglusterfsclient.c +++ b/libglusterfsclient/src/libglusterfsclient.c @@ -2275,7 +2275,7 @@ __glusterfs_glh_getxattr (glusterfs_handle_t handle, const char *path, libglusterfs_client_ctx_t *ctx = handle; char *file = NULL; dict_t *xattr_req = NULL; - char *pathres = NULL; + char *pathres = NULL, *tmp = NULL; GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); @@ -2308,8 +2308,8 @@ __glusterfs_glh_getxattr (glusterfs_handle_t handle, const char *path, goto out; } - file = strdup (pathres); - file = basename (file); + tmp = strdup (pathres); + file = basename (tmp); op_ret = libgf_client_loc_fill (&loc, ctx, 0, loc.parent->ino, file); if (op_ret == -1) { gf_log ("libglusterfsclient", @@ -2359,8 +2359,8 @@ do_getx: } out: - if (file) { - FREE (file); + if (tmp) { + FREE (tmp); } if (xattr_req) { |