From 008efb756fea8a9e66a1825b546e9dc392c72bec Mon Sep 17 00:00:00 2001 From: Elliott Hughes <enh@google.com> Date: Tue, 19 Apr 2016 14:57:09 -0700 Subject: [PATCH] Fix scanf %s in lsof. Bug: http://b/28175237 Change-Id: Ief0ba299b09693ad9afc0e3d17a8f664c2fbb8c2 --- toolbox/lsof.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/toolbox/lsof.c b/toolbox/lsof.c index 113c120fc1..de197a290e 100644 --- a/toolbox/lsof.c +++ b/toolbox/lsof.c @@ -99,13 +99,12 @@ out: static void print_maps(struct pid_info_t* info) { FILE *maps; - char buffer[PATH_MAX + 100]; size_t offset; int major, minor; char device[10]; long int inode; - char file[PATH_MAX]; + char file[1024]; strlcat(info->path, "maps", sizeof(info->path)); @@ -113,8 +112,8 @@ static void print_maps(struct pid_info_t* info) if (!maps) goto out; - while (fscanf(maps, "%*x-%*x %*s %zx %5s %ld %s\n", &offset, device, &inode, - file) == 4) { + while (fscanf(maps, "%*x-%*x %*s %zx %5s %ld %1023s\n", + &offset, device, &inode, file) == 4) { // We don't care about non-file maps if (inode == 0 || !strcmp(device, "00:00")) continue; -- GitLab