Various logging fixlets (#39837)

This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2025-11-22 10:14:10 +01:00
committed by GitHub
6 changed files with 49 additions and 37 deletions
+6 -1
View File
@@ -69,16 +69,21 @@ void pam_log_setup(void) {
log_set_target(LOG_TARGET_SYSLOG);
}
int errno_to_pam_error(int error) {
return ERRNO_VALUE(error) == ENOMEM ? PAM_BUF_ERR : PAM_SERVICE_ERR;
}
int pam_syslog_errno(pam_handle_t *handle, int level, int error, const char *format, ...) {
va_list ap;
error = ERRNO_VALUE(error);
LOCAL_ERRNO(error);
va_start(ap, format);
sym_pam_vsyslog(handle, level, format, ap);
va_end(ap);
return error == -ENOMEM ? PAM_BUF_ERR : PAM_SERVICE_ERR;
return errno_to_pam_error(error);
}
int pam_syslog_pam_error(pam_handle_t *handle, int level, int error, const char *format, ...) {
+6 -2
View File
@@ -31,6 +31,8 @@ int dlopen_libpam(void);
void pam_log_setup(void);
int errno_to_pam_error(int error) _const_;
int pam_syslog_errno(pam_handle_t *handle, int level, int error, const char *format, ...) _printf_(4,5);
int pam_syslog_pam_error(pam_handle_t *handle, int level, int error, const char *format, ...) _printf_(4,5);
@@ -45,8 +47,10 @@ int pam_syslog_pam_error(pam_handle_t *handle, int level, int error, const char
/* Call pam_syslog_errno if debug is enabled */
#define pam_debug_syslog_errno(handle, debug, error, fmt, ...) \
({ \
if (debug) \
pam_syslog_errno(handle, LOG_DEBUG, error, fmt, ## __VA_ARGS__); \
int _error = (error); \
debug ? \
pam_syslog_errno(handle, LOG_DEBUG, _error, fmt, ## __VA_ARGS__) : \
errno_to_pam_error(_error); \
})
static inline int pam_log_oom(pam_handle_t *handle) {