diff options
author | Giampaolo Rodola' <g.rodola@gmail.com> | 2013-03-14 15:05:49 +0000 |
---|---|---|
committer | Giampaolo Rodola' <g.rodola@gmail.com> | 2013-03-14 15:05:49 +0000 |
commit | f494ae924c603396cd9b9b1477bdef899d6baaf9 (patch) | |
tree | 1d63c146457b25aa509bfce4801fb7724d65bde1 | |
parent | 40d0172bf998425e965d72c0b74302ed1ef79d7b (diff) | |
download | psutil-f494ae924c603396cd9b9b1477bdef899d6baaf9.tar.gz |
(freebsd / memory maps) remove spaces from address string
-rw-r--r-- | psutil/_psutil_bsd.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/psutil/_psutil_bsd.c b/psutil/_psutil_bsd.c index ecbb474c..1912507a 100644 --- a/psutil/_psutil_bsd.c +++ b/psutil/_psutil_bsd.c @@ -1215,6 +1215,16 @@ error: } +// remove spaces from string +void remove_spaces(char *str) { + char *p1 = str; + char *p2 = str; + do + while (*p2 == ' ') + p2++; + while (*p1++ = *p2++); +} + /* * Return a list of tuples for every process memory maps. * 'procstat' cmdline utility has been used as an example. @@ -1226,7 +1236,7 @@ get_process_memory_maps(PyObject* self, PyObject* args) int ptrwidth; int i, cnt; char addr[30]; - char perms[10]; + char perms[4]; const char *path; struct kinfo_proc kp; struct kinfo_vmentry *freep = NULL; @@ -1257,6 +1267,7 @@ get_process_memory_maps(PyObject* self, PyObject* args) perms[0] = '\0'; sprintf(addr, "%#*jx-%#*jx", ptrwidth, (uintmax_t)kve->kve_start, ptrwidth, (uintmax_t)kve->kve_end); + remove_spaces(addr); strlcat(perms, kve->kve_protection & KVME_PROT_READ ? "r" : "-", sizeof(perms)); strlcat(perms, kve->kve_protection & KVME_PROT_WRITE ? "w" : "-", @@ -1264,6 +1275,7 @@ get_process_memory_maps(PyObject* self, PyObject* args) strlcat(perms, kve->kve_protection & KVME_PROT_EXEC ? "x" : "-", sizeof(perms)); + if (strlen(kve->kve_path) == 0) { switch (kve->kve_type) { case KVME_TYPE_NONE: |