aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/strings.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 6716013..832e8ac 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2011-03-25 Michael Snyder <msnyder@vmware.com>
+
+ * strings.c (print_strings): Plug memory leak.
+
2011-03-25 Pierre Muller <muller@ics.u-strasbg.fr>
Replace bfd_vma type and analog types by dwarf_vma and analogs.
diff --git a/binutils/strings.c b/binutils/strings.c
index 00cfb6d..4763512 100644
--- a/binutils/strings.c
+++ b/binutils/strings.c
@@ -1,6 +1,6 @@
/* strings -- print the strings of printable characters in files
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -549,7 +549,10 @@ print_strings (const char *filename, FILE *stream, file_ptr address,
{
c = get_char (stream, &address, &magiccount, &magic);
if (c == EOF)
- return;
+ {
+ free (buf);
+ return;
+ }
if (! STRING_ISGRAPHIC (c))
/* Found a non-graphic. Try again starting with next char. */
goto tryline;
@@ -638,6 +641,7 @@ print_strings (const char *filename, FILE *stream, file_ptr address,
putchar ('\n');
}
+ free (buf);
}
static void