summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShehjar Tikoo <shehjart@zresearch.com>2009-04-16 23:52:27 -0700
committerAnand V. Avati <avati@amp.gluster.com>2009-04-17 13:18:16 +0530
commitba4833355a1ee77f828b538a357e07c46f36b037 (patch)
tree386a64b8ebe2b71c8e791ff4521de59e300279f4
parentc1b3deff1186c581cb8d9893a3a0de6bf00d3adc (diff)
libglusterfsclient: Fix segfault on non-NULL loc->name
The gf_log message actually assumes that loc->name will have a valid non-NULL name in it, whereas if the loc_t being passed to it was actually created on a function stack, i.e. a local function variable and was then passed down the code path to do_path_resolve without ever initing it or zeroing the structure, its possible that the name member has a non-NULL but corrupted address. This leads to a segfault. Whereas, we know loc->path will always have the full path. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
-rw-r--r--libglusterfsclient/src/libglusterfsclient-dentry.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libglusterfsclient/src/libglusterfsclient-dentry.c b/libglusterfsclient/src/libglusterfsclient-dentry.c
index c030787cc..e16e304ba 100644
--- a/libglusterfsclient/src/libglusterfsclient-dentry.c
+++ b/libglusterfsclient/src/libglusterfsclient-dentry.c
@@ -245,9 +245,9 @@ __do_path_resolve (loc_t *loc, libglusterfs_client_ctx_t *ctx,
if (parent) {
inode_ref (parent);
gf_log ("libglusterfsclient-dentry", GF_LOG_DEBUG,
- "loc->parent(%"PRId64") already present. sending lookup "
- "for %"PRId64"/%s", parent->ino, parent->ino,
- loc->name);
+ "loc->parent(%"PRId64") already present. sending "
+ "lookup for %"PRId64"/%s", parent->ino, parent->ino,
+ loc->path);
resolved = strdup (loc->path);
resolved = dirname (resolved);
} else {