[PATCH] Don't read past end of buffer in fmemopen
Andreas Schwab
schwab@redhat.com
Thu Mar 3 13:08:00 GMT 2011
The buffer is not required to contain a zero byte at all.
Andreas.
2011-03-03 Andreas Schwab <schwab@redhat.com>
* libio/fmemopen.c (fmemopen): Don't read past end of buffer.
---
libio/fmemopen.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libio/fmemopen.c b/libio/fmemopen.c
index d3750fc..1a631d5 100644
--- a/libio/fmemopen.c
+++ b/libio/fmemopen.c
@@ -1,5 +1,5 @@
/* Fmemopen implementation.
- Copyright (C) 2000, 2002, 2005, 2006, 2008, 2009
+ Copyright (C) 2000, 2002, 2005, 2006, 2008, 2009, 2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Hanno Mueller, kontakt@hanno.de, 2000.
@@ -243,7 +243,7 @@ fmemopen (void *buf, size_t len, const char *mode)
if (mode[0] == 'w')
c->buffer[0] = '\0';
- c->maxpos = strlen (c->buffer);
+ c->maxpos = strnlen (c->buffer, len);
if (mode[0] == 'a')
c->pos = c->maxpos;
--
1.7.4
--
Andreas Schwab, schwab@redhat.com
GPG Key fingerprint = D4E8 DBE3 3813 BB5D FA84 5EC7 45C6 250E 6F00 984E
"And now for something completely different."
More information about the Libc-hacker
mailing list