static char *getln(int, char *, size_t, int);
static char *sudo_askpass(const char *, const char *);
-#ifdef _PATH_SUDO_ASKPASS
-const char *askpass_path = _PATH_SUDO_ASKPASS;
-#else
-const char *askpass_path;
-#endif
-
/*
* Like getpass(3) but with timeout and echo flags.
*/
if (askpass == NULL) {
askpass = getenv("SUDO_ASKPASS");
if (askpass == NULL || *askpass == '\0')
- askpass = askpass_path;
+ askpass = sudo_conf_askpass_path();
}
/* If no tty present and we need to disable echo, try askpass. */
(void) close(pfd[0]);
(void) sigaction(SIGPIPE, &saved_sa_pipe, NULL);
+ if (pass == NULL)
+ errno = EINTR; /* make cancel button simulate ^C */
+
debug_return_str_masked(pass);
}
}
continue;
}
- if (write(fd, "*", 1) == -1)
- /* shut up glibc */;
+ ignore_result(write(fd, "*", 1));
}
*cp++ = c;
}