diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libalpm/handle.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c index c17d86a5..b044adcb 100644 --- a/lib/libalpm/handle.c +++ b/lib/libalpm/handle.c @@ -155,13 +155,13 @@ void alpm_option_set_root(const char *root)  	/* According to the man page, realpath is safe to use IFF the second arg is  	 * NULL. */  	char *realroot = realpath(root, NULL); -	if(!realroot) { -		realroot = root; +	if(realroot) { +		root = realroot; +	} else {  		_alpm_log(PM_LOG_ERROR, _("cannot canonicalize specified root path '%s'"), root);  	} -	/* check again, in case both are null */ -	if(realroot) { +	if(root) {  		/* verify root ends in a '/' */  		int rootlen = strlen(realroot);  		if(realroot[rootlen-1] != '/') { @@ -172,6 +172,8 @@ void alpm_option_set_root(const char *root)  		handle->root[rootlen-1] = '/';  		_alpm_log(PM_LOG_DEBUG, _("option 'root' = %s"), handle->root); +	} +	if(realroot) {  		free(realroot);  	}  }  | 
