From 3eb8bfa4cc1712621a18aaf12bef6420a19e55c0 Mon Sep 17 00:00:00 2001 From: Benny Baumann Date: Sun, 10 Mar 2024 16:18:29 +0100 Subject: Avoid glibc FILE API for secattr --- linux/LinuxProcessTable.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/linux/LinuxProcessTable.c b/linux/LinuxProcessTable.c index 2285667d..428199d2 100644 --- a/linux/LinuxProcessTable.c +++ b/linux/LinuxProcessTable.c @@ -971,21 +971,15 @@ static void LinuxProcessTable_readAutogroup(LinuxProcess* process, openat_arg_t } static void LinuxProcessTable_readSecattrData(LinuxProcess* process, openat_arg_t procFd) { - FILE* file = fopenat(procFd, "attr/current", "r"); - if (!file) { - free(process->secattr); - process->secattr = NULL; - return; - } + char buffer[PROC_LINE_LENGTH + 1] = {0}; - char buffer[PROC_LINE_LENGTH + 1]; - const char* res = fgets(buffer, sizeof(buffer), file); - fclose(file); - if (!res) { + ssize_t attrdata = xReadfileat(procFd, "attr/current", buffer, sizeof(buffer)); + if (attrdata < 1) { free(process->secattr); process->secattr = NULL; return; } + char* newline = strchr(buffer, '\n'); if (newline) { *newline = '\0'; -- cgit v1.2.3