X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fselinux-access.c;h=a8c9a4b888f6e8a268e089d053741f0cf133b3a2;hp=f6389584f75ae4a77bb7fffd9c1a9eaea70eaea1;hb=2eec67acbb00593e414549a7e5b35eb7dd776b1b;hpb=05bae4a60c32e29797597979cee2f3684eb3bc1e diff --git a/src/core/selinux-access.c b/src/core/selinux-access.c index f6389584f..a8c9a4b88 100644 --- a/src/core/selinux-access.c +++ b/src/core/selinux-access.c @@ -24,12 +24,9 @@ #ifdef HAVE_SELINUX #include -#include #include -#include #include #include -#include #ifdef HAVE_AUDIT #include #endif @@ -38,7 +35,6 @@ #include "bus-util.h" #include "util.h" #include "log.h" -#include "audit.h" #include "selinux-util.h" #include "audit-fd.h" #include "strv.h" @@ -64,16 +60,16 @@ static int audit_callback( const struct audit_info *audit = auditdata; uid_t uid = 0, login_uid = 0; gid_t gid = 0; - char login_uid_buf[DECIMAL_STR_MAX(uid_t)] = "n/a"; - char uid_buf[DECIMAL_STR_MAX(uid_t)] = "n/a"; - char gid_buf[DECIMAL_STR_MAX(gid_t)] = "n/a"; + char login_uid_buf[DECIMAL_STR_MAX(uid_t) + 1] = "n/a"; + char uid_buf[DECIMAL_STR_MAX(uid_t) + 1] = "n/a"; + char gid_buf[DECIMAL_STR_MAX(gid_t) + 1] = "n/a"; if (sd_bus_creds_get_audit_login_uid(audit->creds, &login_uid) >= 0) - snprintf(login_uid_buf, sizeof(login_uid_buf), UID_FMT, login_uid); + xsprintf(login_uid_buf, UID_FMT, login_uid); if (sd_bus_creds_get_euid(audit->creds, &uid) >= 0) - snprintf(uid_buf, sizeof(uid_buf), UID_FMT, uid); + xsprintf(uid_buf, UID_FMT, uid); if (sd_bus_creds_get_egid(audit->creds, &gid) >= 0) - snprintf(gid_buf, sizeof(gid_buf), GID_FMT, gid); + xsprintf(gid_buf, GID_FMT, gid); snprintf(msgbuf, msgbufsize, "auid=%s uid=%s gid=%s%s%s%s%s%s%s", @@ -81,8 +77,6 @@ static int audit_callback( audit->path ? " path=\"" : "", strempty(audit->path), audit->path ? "\"" : "", audit->cmdline ? " cmdline=\"" : "", strempty(audit->cmdline), audit->cmdline ? "\"" : ""); - msgbuf[msgbufsize-1] = 0; - return 0; }