Validate Uid+Gid fields exist in proc_cred_get
This commit is contained in:
parent
585d510fb4
commit
3ff8a2666d
|
@ -826,6 +826,8 @@ int sigar_proc_mem_get(sigar_t *sigar, sigar_pid_t pid,
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define NO_ID_MSG "[proc_cred] /proc/%lu" PROC_PSTATUS " missing "
|
||||||
|
|
||||||
int sigar_proc_cred_get(sigar_t *sigar, sigar_pid_t pid,
|
int sigar_proc_cred_get(sigar_t *sigar, sigar_pid_t pid,
|
||||||
sigar_proc_cred_t *proccred)
|
sigar_proc_cred_t *proccred)
|
||||||
{
|
{
|
||||||
|
@ -836,17 +838,29 @@ int sigar_proc_cred_get(sigar_t *sigar, sigar_pid_t pid,
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr = strstr(buffer, "\nUid:");
|
if ((ptr = strstr(buffer, "\nUid:"))) {
|
||||||
ptr = sigar_skip_token(ptr);
|
ptr = sigar_skip_token(ptr);
|
||||||
|
|
||||||
proccred->uid = sigar_strtoul(ptr);
|
proccred->uid = sigar_strtoul(ptr);
|
||||||
proccred->euid = sigar_strtoul(ptr);
|
proccred->euid = sigar_strtoul(ptr);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sigar_log_printf(sigar, SIGAR_LOG_WARN,
|
||||||
|
NO_ID_MSG "Uid", pid);
|
||||||
|
return ENOENT;
|
||||||
|
}
|
||||||
|
|
||||||
ptr = strstr(ptr, "\nGid:");
|
if ((ptr = strstr(ptr, "\nGid:"))) {
|
||||||
ptr = sigar_skip_token(ptr);
|
ptr = sigar_skip_token(ptr);
|
||||||
|
|
||||||
proccred->gid = sigar_strtoul(ptr);
|
proccred->gid = sigar_strtoul(ptr);
|
||||||
proccred->egid = sigar_strtoul(ptr);
|
proccred->egid = sigar_strtoul(ptr);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sigar_log_printf(sigar, SIGAR_LOG_WARN,
|
||||||
|
NO_ID_MSG "Gid", pid);
|
||||||
|
return ENOENT;
|
||||||
|
}
|
||||||
|
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue