Add security attribute process column

This commit is contained in:
Christian Göttsche
2020-09-28 12:06:13 +02:00
committed by cgzones
parent 4b14ab9789
commit 6f387008cb
3 changed files with 38 additions and 1 deletions

View File

@ -625,6 +625,32 @@ static void LinuxProcessList_readCtxtData(LinuxProcess* process, const char* dir
process->ctxt_total = ctxt;
}
static void LinuxProcessList_readSecattrData(LinuxProcess* process, const char* dirname, const char* name) {
char filename[MAX_NAME+1];
xSnprintf(filename, sizeof(filename), "%s/%s/attr/current", dirname, name);
FILE* file = fopen(filename, "r");
if (!file) {
free(process->secattr);
process->secattr = NULL;
return;
}
char buffer[PROC_LINE_LENGTH + 1];
char *res = fgets(buffer, sizeof(buffer), file);
fclose(file);
if (!res) {
free(process->secattr);
process->secattr = NULL;
return;
}
char *newline = strchr(buffer, '\n');
if (newline)
*newline = '\0';
if (process->secattr && 0 == strcmp(process->secattr, buffer))
return;
free(process->secattr);
process->secattr = xStrdup(buffer);
}
#ifdef HAVE_DELAYACCT
static int handleNetlinkMsg(struct nl_msg *nlmsg, void *linuxProcess) {
@ -925,6 +951,9 @@ static bool LinuxProcessList_recurseProcTree(LinuxProcessList* this, const char*
if (settings->flags & PROCESS_FLAG_LINUX_CTXT)
LinuxProcessList_readCtxtData(lp, dirname, name);
if (settings->flags & PROCESS_FLAG_LINUX_SECATTR)
LinuxProcessList_readSecattrData(lp, dirname, name);
if (proc->state == 'Z' && (proc->basenameOffset == 0)) {
proc->basenameOffset = -1;
setCommand(proc, command, commLen);