1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-09 01:18:19 +03:00

pam: do not warn closing bus connection which is opened after the fork

In pam_systemd.so and pam_systemd_home.so, we open a bus connection on
session close, which is called after fork. Closing the connection is
harmless, and should not warn about that.

This suppresses the following log message:
===
(sd-pam)[127]: PAM Attempted to close sd-bus after fork, this should not happen.
===
This commit is contained in:
Yu Watanabe 2024-01-21 13:11:09 +09:00
parent de39202426
commit 34e4ad1796

View File

@ -5,6 +5,7 @@
#include <stdlib.h>
#include "alloc-util.h"
#include "bus-internal.h"
#include "errno-util.h"
#include "format-util.h"
#include "macro.h"
@ -88,8 +89,13 @@ static void pam_bus_data_destroy(pam_handle_t *handle, void *data, int error_sta
* internally anyway. That said, we still generate a warning message, since this really shouldn't
* happen. */
if (error_status & PAM_DATA_SILENT)
pam_syslog(handle, LOG_DEBUG, "Attempted to close sd-bus after fork, this should not happen.");
if (!data)
return;
PamBusData *d = data;
if (FLAGS_SET(error_status, PAM_DATA_SILENT) &&
d->bus && bus_origin_changed(d->bus))
pam_syslog(handle, LOG_DEBUG, "Attempted to close sd-bus after fork whose connection is opened before the fork, this should not happen.");
pam_bus_data_free(data);
}