aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Leidinger <netchild@FreeBSD.org>2022-03-26 10:14:16 +0000
committerAlexander Leidinger <netchild@FreeBSD.org>2022-03-26 10:17:55 +0000
commitaeb91e95cfc2d86e6f5eea4114247d2987ba06b6 (patch)
treeba1446fa7410125bbab8cd8a83ffe1d64d1f1e40
parent0c9c2eb394b4a5694bc5ea11b326f334c735c813 (diff)
downloadsrc-aeb91e95cfc2d86e6f5eea4114247d2987ba06b6.tar.gz
src-aeb91e95cfc2d86e6f5eea4114247d2987ba06b6.zip
Log euid, rgid and jail on listen queue overflow
If you have numerous jails with multiple similar services running, this helps to narrow down which services this log is referring to.
-rw-r--r--sys/kern/uipc_socket.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index ab8e5d6e1b69..4c4fde0d6a26 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -699,12 +699,24 @@ sonewconn(struct socket *head, int connstatus)
}
KASSERT(sbuf_len(&descrsb) > 0,
("%s: sbuf creation failed", __func__));
- log(LOG_DEBUG,
- "%s: pcb %p (%s): Listen queue overflow: "
- "%i already in queue awaiting acceptance "
- "(%d occurrences)\n",
- __func__, head->so_pcb, sbuf_data(&descrsb),
- qlen, overcount);
+ if (head->so_cred == 0) {
+ log(LOG_DEBUG,
+ "%s: pcb %p (%s): Listen queue overflow: "
+ "%i already in queue awaiting acceptance "
+ "(%d occurrences)\n",
+ __func__, head->so_pcb, sbuf_data(&descrsb),
+ qlen, overcount);
+ } else {
+ log(LOG_DEBUG, "%s: pcb %p (%s): Listen queue overflow: "
+ "%i already in queue awaiting acceptance "
+ "(%d occurrences), euid %d, rgid %d, jail %s\n",
+ __func__, head->so_pcb, sbuf_data(&descrsb),
+ qlen, overcount,
+ head->so_cred->cr_uid, head->so_cred->cr_rgid,
+ head->so_cred->cr_prison ?
+ head->so_cred->cr_prison->pr_name :
+ "not_jailed");
+ }
sbuf_delete(&descrsb);
overcount = 0;