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
This commit is contained in:
djm@openbsd.org 2017-08-18 05:48:04 +00:00 committed by Damien Miller
parent de4ae07f12
commit b074c3c3f8
3 changed files with 9 additions and 8 deletions

View File

@ -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. * 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); fclose(f);
f = NULL; f = NULL;
if (exited_cleanly(pid, "AuthorizedPrincipalsCommand", command) != 0) if (exited_cleanly(pid, "AuthorizedPrincipalsCommand", command, 0) != 0)
goto out; goto out;
/* Read completed successfully */ /* Read completed successfully */
@ -767,7 +767,7 @@ user_key_command_allowed2(struct passwd *user_pw, struct sshkey *key)
fclose(f); fclose(f);
f = NULL; f = NULL;
if (exited_cleanly(pid, "AuthorizedKeysCommand", command) != 0) if (exited_cleanly(pid, "AuthorizedKeysCommand", command, 0) != 0)
goto out; goto out;
/* Read completed successfully */ /* Read completed successfully */

7
misc.c
View File

@ -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) 2000 Markus Friedl. All rights reserved.
* Copyright (c) 2005,2006 Damien Miller. 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 */ /* Returns 0 if pid exited cleanly, non-zero otherwise */
int 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; 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)); error("%s %s exited on signal %d", tag, cmd, WTERMSIG(status));
return -1; return -1;
} else if (WEXITSTATUS(status) != 0) { } 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 -1;
} }
return 0; return 0;

4
misc.h
View File

@ -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> * 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 ***); int argv_split(const char *, int *, char ***);
char *argv_assemble(int, char **argv); 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_DISCARD (1) /* Discard stdout */
#define SSH_SUBPROCESS_STDOUT_CAPTURE (1<<1) /* Redirect stdout */ #define SSH_SUBPROCESS_STDOUT_CAPTURE (1<<1) /* Redirect stdout */