When opening 2 sessions on an agentx connection and registering 2
authormartijn <martijn@openbsd.org>
Tue, 24 Oct 2023 14:02:52 +0000 (14:02 +0000)
committermartijn <martijn@openbsd.org>
Tue, 24 Oct 2023 14:02:52 +0000 (14:02 +0000)
commitfe6f1a998b92eaf2abdfab0973d16d28a79212f6
tree82c2c3f20eb68a827ed48cb768c36aa2b78825cb
parentec4531b0d99ffae86d8feea2fed6edfa547b0259
When opening 2 sessions on an agentx connection and registering 2
overlapping regions on the different sessions, e.g. by differing in
priority and we close the underlying connection with an outstanding
request to the dominant region we will call appl_agentx_free(), which
sequentially closes all sessions. If the session with the outstanding
request is closed before the second session the request is retried
before said session is cleaned up and it will try to send it over a
conn_ax which at that point has been set to NULL, resulting in a
SIGSEGV.

Simply return early and let this second request be cancelled by the
cleanup of the second session.

OK tb@
usr.sbin/snmpd/application_agentx.c