summaryrefslogtreecommitdiffstats
path: root/glusterfsd
diff options
context:
space:
mode:
authorshishir gowda <shishirng@gluster.com>2011-02-18 00:06:26 +0000
committerAnand V. Avati <avati@dev.gluster.com>2011-02-22 02:11:30 -0800
commitccee8039720f8253d460384aa6659edd8e75f3db (patch)
tree0ba564335a9ab07d3c394dbe79f46690dd2646c3 /glusterfsd
parent65e5cc0f394e1d2faaab3dc5d097a3f01b03dd41 (diff)
Fix getcwd size arg to make it work in solaris.
glusterfs/d -f path failed if the path was not absolute. If the BUF argument is NULL, then on solaris the size argument has to be passed. On linux, if the size argument passed is 0, then it dynmically allocates a buffer of the required size. The fix is to pass PATH_MAX as the size for consistency. Signed-off-by: Shishir Gowda <shishirng@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 2443 (starting glusterfs/d -f with relative path crashes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2443
Diffstat (limited to 'glusterfsd')
-rw-r--r--glusterfsd/src/glusterfsd.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c
index 4977e2b..87d16c7 100644
--- a/glusterfsd/src/glusterfsd.c
+++ b/glusterfsd/src/glusterfsd.c
@@ -469,7 +469,13 @@ parse_opts (int key, char *arg, struct argp_state *state)
GF_FREE (cmd_args->volfile);
if (arg[0] != '/') {
- pwd = getcwd (NULL, 0);
+ pwd = getcwd (NULL, PATH_MAX);
+ if (!pwd) {
+ argp_failure (state, -1, errno,
+ "getcwd failed with error no %d",
+ errno);
+ break;
+ }
snprintf (tmp_buf, 1024, "%s/%s", pwd, arg);
cmd_args->volfile = gf_strdup (tmp_buf);
free (pwd);