]> granicus.if.org Git - sudo/commitdiff
Avoid comparing new cwd with old one if getcwd() failed.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 7 Oct 2014 16:56:50 +0000 (10:56 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 7 Oct 2014 16:56:50 +0000 (10:56 -0600)
Bug #670

src/sudo.c

index 05d5214a50fb5d2c3f371192f9c865f43c30c27d..ee306774ac823630344ccf8dfcc33c13b0eabdaa 100644 (file)
@@ -1003,8 +1003,9 @@ exec_setup(struct command_details *details, const char *ptyname, int ptyfd)
      * Only change cwd if we have chroot()ed or the policy modules
      * specifies a different cwd.  Must be done after uid change.
      */
-    if (details->cwd) {
-       if (details->chroot || strcmp(details->cwd, user_details.cwd) != 0) {
+    if (details->cwd != NULL) {
+       if (details->chroot || user_details.cwd == NULL ||
+           strcmp(details->cwd, user_details.cwd) != 0) {
            /* Note: cwd is relative to the new root, if any. */
            if (chdir(details->cwd) != 0) {
                sudo_warn(U_("unable to change directory to %s"), details->cwd);