summaryrefslogtreecommitdiffstats
path: root/solaris
diff options
context:
space:
mode:
authorGuy M. Broome <thrirhrafnir@gmail.com>2018-03-05 16:46:52 -0500
committerHisham Muhammad <hisham@gobolinux.org>2018-03-16 11:43:48 -0300
commit69355234d0d2934f15afd324340df62257aab6e7 (patch)
tree89847d8362a493bec31eb9c8ab7501576d59989c /solaris
parentcefbe499db1a418bc41459cd04fb2965450677d8 (diff)
Solaris: fix memory allocation for usernames (some empty usernames in 32-bit builds)
Diffstat (limited to 'solaris')
-rw-r--r--solaris/SolarisProcessList.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/solaris/SolarisProcessList.c b/solaris/SolarisProcessList.c
index d3473e20..66a25a30 100644
--- a/solaris/SolarisProcessList.c
+++ b/solaris/SolarisProcessList.c
@@ -62,16 +62,6 @@ typedef struct SolarisProcessList_ {
}*/
-static void setCommand(Process* process, const char* command, int len) {
- if (process->comm && process->commLen >= len) {
- strncpy(process->comm, command, len + 1);
- } else {
- free(process->comm);
- process->comm = xStrdup(command);
- }
- process->commLen = len;
-}
-
char* SolarisProcessList_readZoneName(kstat_ctl_t* kd, SolarisProcess* sproc) {
char* zname;
if ( sproc->zoneid == 0 ) {
@@ -326,7 +316,8 @@ void ProcessList_goThroughEntries(ProcessList* this) {
proc->user = UsersTable_getRef(this->usersTable, proc->st_uid);
proc->nlwp = _psinfo.pr_nlwp;
proc->session = _pstatus.pr_sid;
- setCommand(proc,_psinfo.pr_fname,PRFNSZ);
+ proc->comm = xStrdup(_psinfo.pr_fname);
+ proc->commLen = strnlen(_psinfo.pr_fname,PRFNSZ);
sproc->zname = SolarisProcessList_readZoneName(spl->kd,sproc);
proc->majflt = _prusage.pr_majf;
proc->minflt = _prusage.pr_minf;
@@ -355,7 +346,8 @@ void ProcessList_goThroughEntries(ProcessList* this) {
proc->pgrp = _psinfo.pr_pgid;
proc->nlwp = _psinfo.pr_nlwp;
proc->user = UsersTable_getRef(this->usersTable, proc->st_uid);
- setCommand(proc,_psinfo.pr_fname,PRFNSZ);
+ proc->comm = xStrdup(_psinfo.pr_fname);
+ proc->commLen = strnlen(_psinfo.pr_fname,PRFNSZ);
sproc->zname = SolarisProcessList_readZoneName(spl->kd,sproc);
proc->majflt = _prusage.pr_majf;
proc->minflt = _prusage.pr_minf;

© 2014-2024 Faster IT GmbH | imprint | privacy policy