From fa893705179671b3c661019416bdc9f48fa65005 Mon Sep 17 00:00:00 2001 From: Joachim Nilsson Date: Sun, 31 May 2015 01:54:37 +0200 Subject: [PATCH] Fix pid_get_name() when NULL buffer is provided. Signed-off-by: Joachim Nilsson --- helpers.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/helpers.c b/helpers.c index bf6186b3..50884c0a 100644 --- a/helpers.c +++ b/helpers.c @@ -245,19 +245,17 @@ char *pid_get_name(pid_t pid, char *name, size_t len) { int ret = 1; FILE *fp; - char path[32]; + char *pname, path[32]; static char line[64]; - if (!name || len == 0) - name = line; - snprintf(path, sizeof(path), "/proc/%d/status", pid); - if ((fp = fopen(path, "r")) != NULL) { + fp = fopen(path, "r"); + if (fp) { if (fgets(line, sizeof (line), fp)) { - char *pname = line + 6; /* Skip first part of line --> "Name:\t" */ - + pname = line + 6; /* Skip first part of line --> "Name:\t" */ chomp(pname); - strlcpy(name, pname, len); + if (name) + strlcpy(name, pname, len); ret = 0; /* Found it! */ }