summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2017-08-18 05:48:04 +0000
committerDamien Miller <djm@mindrot.org>2017-08-23 19:47:06 +1000
commitb074c3c3f820000a21953441cea7699c4b17d72f (patch)
tree9304faf8fcaef5893524a7283450de2b75b1d8ea
parentde4ae07f12dabf8815ecede54235fce5d22e3f63 (diff)
upstream commit
add a "quiet" flag to exited_cleanly() that supresses errors about exit status (failure due to signal is still reported) Upstream-ID: db85c39c3aa08e6ff67fc1fb4ffa89f807a9d2f0
-rw-r--r--auth2-pubkey.c6
-rw-r--r--misc.c7
-rw-r--r--misc.h4
3 files changed, 9 insertions, 8 deletions
diff --git a/auth2-pubkey.c b/auth2-pubkey.c
index 0b1e88de..e1845d7d 100644
--- a/auth2-pubkey.c
+++ b/auth2-pubkey.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: auth2-pubkey.c,v 1.69 2017/08/18 05:36:45 djm Exp $ */
+/* $OpenBSD: auth2-pubkey.c,v 1.70 2017/08/18 05:48:04 djm Exp $ */
/*
* Copyright (c) 2000 Markus Friedl. All rights reserved.
*
@@ -437,7 +437,7 @@ match_principals_command(struct passwd *user_pw, const struct sshkey *key)
fclose(f);
f = NULL;
- if (exited_cleanly(pid, "AuthorizedPrincipalsCommand", command) != 0)
+ if (exited_cleanly(pid, "AuthorizedPrincipalsCommand", command, 0) != 0)
goto out;
/* Read completed successfully */
@@ -767,7 +767,7 @@ user_key_command_allowed2(struct passwd *user_pw, struct sshkey *key)
fclose(f);
f = NULL;
- if (exited_cleanly(pid, "AuthorizedKeysCommand", command) != 0)
+ if (exited_cleanly(pid, "AuthorizedKeysCommand", command, 0) != 0)
goto out;
/* Read completed successfully */
diff --git a/misc.c b/misc.c
index 8398f0b3..73723d19 100644
--- a/misc.c
+++ b/misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.c,v 1.112 2017/08/18 05:36:45 djm Exp $ */
+/* $OpenBSD: misc.c,v 1.113 2017/08/18 05:48:04 djm Exp $ */
/*
* Copyright (c) 2000 Markus Friedl. All rights reserved.
* Copyright (c) 2005,2006 Damien Miller. All rights reserved.
@@ -1570,7 +1570,7 @@ subprocess(const char *tag, struct passwd *pw, const char *command,
/* Returns 0 if pid exited cleanly, non-zero otherwise */
int
-exited_cleanly(pid_t pid, const char *tag, const char *cmd)
+exited_cleanly(pid_t pid, const char *tag, const char *cmd, int quiet)
{
int status;
@@ -1584,7 +1584,8 @@ exited_cleanly(pid_t pid, const char *tag, const char *cmd)
error("%s %s exited on signal %d", tag, cmd, WTERMSIG(status));
return -1;
} else if (WEXITSTATUS(status) != 0) {
- error("%s %s failed, status %d", tag, cmd, WEXITSTATUS(status));
+ do_log2(quiet ? SYSLOG_LEVEL_DEBUG1 : SYSLOG_LEVEL_INFO,
+ "%s %s failed, status %d", tag, cmd, WEXITSTATUS(status));
return -1;
}
return 0;
diff --git a/misc.h b/misc.h
index 617f8767..153d1137 100644
--- a/misc.h
+++ b/misc.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.h,v 1.62 2017/08/18 05:36:45 djm Exp $ */
+/* $OpenBSD: misc.h,v 1.63 2017/08/18 05:48:04 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -138,7 +138,7 @@ void child_set_env(char ***envp, u_int *envsizep, const char *name,
int argv_split(const char *, int *, char ***);
char *argv_assemble(int, char **argv);
-int exited_cleanly(pid_t, const char *, const char *);
+int exited_cleanly(pid_t, const char *, const char *, int);
#define SSH_SUBPROCESS_STDOUT_DISCARD (1) /* Discard stdout */
#define SSH_SUBPROCESS_STDOUT_CAPTURE (1<<1) /* Redirect stdout */