proc_args fix: seems not all processes have the terminating \0
This commit is contained in:
parent
fadcfdcbf5
commit
cd8cab425e
|
@ -225,12 +225,7 @@ int sigar_procfs_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||||
if (len == 0) {
|
if (len == 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (buf) {
|
buf = realloc(buf, total+len+1);
|
||||||
buf = realloc(buf, total+len);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
buf = malloc(len+1);
|
|
||||||
}
|
|
||||||
memcpy(buf+total, buffer, len);
|
memcpy(buf+total, buffer, len);
|
||||||
total += len;
|
total += len;
|
||||||
}
|
}
|
||||||
|
@ -256,7 +251,11 @@ int sigar_procfs_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||||
memcpy(arg, ptr, alen);
|
memcpy(arg, ptr, alen);
|
||||||
|
|
||||||
procargs->data[procargs->number++] = arg;
|
procargs->data[procargs->number++] = arg;
|
||||||
|
|
||||||
|
total -= alen;
|
||||||
|
if (total <= 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
ptr += alen;
|
ptr += alen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue