From: Colin Watson Date: Mon, 5 Aug 2013 10:52:22 +0000 (+1000) Subject: pwdx: fails when run in a nonexistent locale X-Git-Tag: v3.3.9~53 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=26ae657950272439be23e02057debf5d83265436;p=procps-ng pwdx: fails when run in a nonexistent locale pwdx rather mysteriously fails with "invalid process id" when run in a nonexistent locale (e.g. "LC_ALL=foo pwdx $$"). This is because it fails to obey the documented calling sequence for strtol - that is, set errno to 0 before the call - and thus the errno from the setlocale failure bleeds over into its check for whether strtol failed. References: http://bugs.debian.org/718766 Signed-off-by: Craig Small --- diff --git a/pwdx.c b/pwdx.c index 214275a9..9d409027 100644 --- a/pwdx.c +++ b/pwdx.c @@ -52,6 +52,7 @@ int check_pid_argument(char *input) if (!strncmp("/proc/", input, 6)) skip = 6; + errno = 0; pid = strtol(input + skip, &end, 10); if (errno || input + skip == end || (end && *end))