From b535e4936d31e88595abc79a28ba87031aeccc4c Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 20 Jun 2012 11:37:44 +0200 Subject: pidinfo: don't let a corrupt /proc/PID/status cause buf[-1] access Change-Id: I5d10eb92af753513eb5e5e3d7d2ad3ace57917d7 BUG: 789278 Signed-off-by: Jim Meyering Reviewed-on: http://review.gluster.com/3597 Tested-by: Gluster Build System Reviewed-by: Anand Avati --- xlators/features/marker/utils/src/procdiggy.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xlators/features/marker/utils/src/procdiggy.c b/xlators/features/marker/utils/src/procdiggy.c index 0baab966dc5..2f81db6ad42 100644 --- a/xlators/features/marker/utils/src/procdiggy.c +++ b/xlators/features/marker/utils/src/procdiggy.c @@ -51,13 +51,15 @@ pidinfo (pid_t pid, char **name) if (name) *name = NULL; for (;;) { + size_t len; memset (buf, 0, sizeof (buf)); if (fgets (buf, sizeof (buf), f) == NULL || - buf[strlen (buf) - 1] != '\n') { + (len = strlen (buf)) == 0 || + buf[len - 1] != '\n') { pid = -1; goto out; } - buf[strlen (buf) -1] = '\0'; + buf[len - 1] = '\0'; if (name && !*name) { p = strtail (buf, "Name:"); -- cgit