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>
This commit is contained in:
Shehjar Tikoo 2009-04-16 23:52:27 -07:00 committed by Anand V. Avati
parent c1b3deff11
commit ba4833355a

View File

@ -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 {