summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2016-04-19 14:57:09 -0700
committerThe Android Automerger <android-build@google.com>2016-05-27 11:31:45 -0700
commitae18eb014609948a40e22192b87b10efc680daa7 (patch)
treeeec110478dae59646c6413ef602b58b5fba4d7be
parent864e2e22fcd0cba3f5e67680ccabd0302dfda45d (diff)
downloadsystem_core-ae18eb014609948a40e22192b87b10efc680daa7.zip
system_core-ae18eb014609948a40e22192b87b10efc680daa7.tar.gz
system_core-ae18eb014609948a40e22192b87b10efc680daa7.tar.bz2
Fix scanf %s in lsof.
Bug: http://b/28175237 Change-Id: Ief0ba299b09693ad9afc0e3d17a8f664c2fbb8c2
-rw-r--r--toolbox/lsof.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/toolbox/lsof.c b/toolbox/lsof.c
index 982f5aa..da78ddd 100644
--- a/toolbox/lsof.c
+++ b/toolbox/lsof.c
@@ -100,10 +100,11 @@ out:
static void print_maps(struct pid_info_t* info)
{
FILE *maps;
+
size_t offset;
char device[10];
long int inode;
- char file[PATH_MAX];
+ char file[1024];
strlcat(info->path, "maps", sizeof(info->path));
@@ -111,8 +112,8 @@ static void print_maps(struct pid_info_t* info)
if (!maps)
goto out;
- while (fscanf(maps, "%*x-%*x %*s %zx %s %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;