[openssh-commits] [openssh] 02/02: upstream: better debug logging of sessions' exit status
git+noreply at mindrot.org
git+noreply at mindrot.org
Fri Aug 11 09:13:09 AEST 2023
This is an automated email from the git hooks/post-receive script.
djm pushed a commit to branch master
in repository openssh.
commit f9f18006678d2eac8b0c5a5dddf17ab7c50d1e9f
Author: djm at openbsd.org <djm at openbsd.org>
Date: Thu Aug 10 23:05:48 2023 +0000
upstream: better debug logging of sessions' exit status
OpenBSD-Commit-ID: 82237567fcd4098797cbdd17efa6ade08e1a36b0
---
session.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/session.c b/session.c
index 89dcfdab..aa342e84 100644
--- a/session.c
+++ b/session.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: session.c,v 1.335 2023/03/07 06:09:14 dtucker Exp $ */
+/* $OpenBSD: session.c,v 1.336 2023/08/10 23:05:48 djm Exp $ */
/*
* Copyright (c) 1995 Tatu Ylonen <ylo at cs.hut.fi>, Espoo, Finland
* All rights reserved
@@ -2380,17 +2380,17 @@ session_exit_message(struct ssh *ssh, Session *s, int status)
{
Channel *c;
int r;
+ char *note = NULL;
if ((c = channel_lookup(ssh, s->chanid)) == NULL)
fatal_f("session %d: no channel %d", s->self, s->chanid);
- debug_f("session %d channel %d pid %ld",
- s->self, s->chanid, (long)s->pid);
if (WIFEXITED(status)) {
channel_request_start(ssh, s->chanid, "exit-status", 0);
if ((r = sshpkt_put_u32(ssh, WEXITSTATUS(status))) != 0 ||
(r = sshpkt_send(ssh)) != 0)
sshpkt_fatal(ssh, r, "%s: exit reply", __func__);
+ xasprintf(¬e, "exit %d", WEXITSTATUS(status));
} else if (WIFSIGNALED(status)) {
channel_request_start(ssh, s->chanid, "exit-signal", 0);
#ifndef WCOREDUMP
@@ -2402,11 +2402,18 @@ session_exit_message(struct ssh *ssh, Session *s, int status)
(r = sshpkt_put_cstring(ssh, "")) != 0 ||
(r = sshpkt_send(ssh)) != 0)
sshpkt_fatal(ssh, r, "%s: exit reply", __func__);
+ xasprintf(¬e, "signal %d%s", WTERMSIG(status),
+ WCOREDUMP(status) ? " core dumped" : "");
} else {
/* Some weird exit cause. Just exit. */
- ssh_packet_disconnect(ssh, "wait returned status %04x.", status);
+ ssh_packet_disconnect(ssh, "wait returned status %04x.",
+ status);
}
+ debug_f("session %d channel %d pid %ld %s", s->self, s->chanid,
+ (long)s->pid, note == NULL ? "UNKNOWN" : note);
+ free(note);
+
/* disconnect channel */
debug_f("release channel %d", s->chanid);
--
To stop receiving notification emails like this one, please contact
djm at mindrot.org.
More information about the openssh-commits
mailing list