From 5159d29cf36153d874ee446805419c864c1ba1ee Mon Sep 17 00:00:00 2001 From: Anand Avati Date: Mon, 22 Jul 2013 01:15:21 -0700 Subject: gfapi: fix glfs_readlink() glfs_readlink() is supposed to memcpy the buffer pointer returned by syncop_readlink(). Fix it. Change-Id: I5936b07abbd93cf02b354233dc60f6623e30a38b BUG: 953694 Signed-off-by: Anand Avati Reviewed-on: http://review.gluster.org/5885 Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- api/src/glfs-fops.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c index 1794e603f3f..548a4a8966b 100644 --- a/api/src/glfs-fops.c +++ b/api/src/glfs-fops.c @@ -1211,6 +1211,7 @@ glfs_readlink (struct glfs *fs, const char *path, char *buf, size_t bufsiz) loc_t loc = {0, }; struct iatt iatt = {0, }; int reval = 0; + char *linkval = NULL; __glfs_entry_fs (fs); @@ -1234,7 +1235,11 @@ retry: goto out; } - ret = syncop_readlink (subvol, &loc, &buf, bufsiz); + ret = syncop_readlink (subvol, &loc, &linkval, bufsiz); + if (ret > 0) { + memcpy (buf, linkval, ret); + GF_FREE (linkval); + } ESTALE_RETRY (ret, errno, reval, &loc, retry); out: -- cgit