From b074c3c3f820000a21953441cea7699c4b17d72f Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 18 Aug 2017 05:48:04 +0000 Subject: [PATCH] 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 --- auth2-pubkey.c | 6 +++--- misc.c | 7 ++++--- misc.h | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/auth2-pubkey.c b/auth2-pubkey.c index 0b1e88deb..e1845d7d5 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 8398f0b36..73723d197 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 617f87675..153d11375 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 @@ -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 */