This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Greetings,
For BZ #18757, I made a test which forces fmemopen() to fail due to
out-of-memory:
+ errno = 0;
+ stream = fmemopen (NULL, ~0, "w");
+ if (stream)
+ {
+ printf ("fmemopen: expected NULL, got %p\n", stream);
+ fclose (stream);
+ return 3;
+ }
+ if (errno != ENOMEM)
+ {
+ printf ("fmemopen: got %i, expected ENOMEM (%i)\n", errno, ENOMEM);
+ return 20;
+ }
+
return 0;
}
But that caused libio/test-fmemopen-mem to fail like so:
Memory not freed:
-----------------
Address Size Caller
000000000000000000 0xffffffffffffffff at 0x7f023582e3c8
This is of course completely bogus.
The comment in malloc/mtrace.c:
165 /* We could be printing a NULL here; that's OK. */
166 fprintf (mallstream, "+ %p %#lx\n", hdr, (unsigned long int) size);
--
242 /* We could be printing a NULL here; that's OK. */
243 fprintf (mallstream, "+ %p %#lx\n", hdr, (unsigned long int) size);
suggests that perhaps mtrace.pl was intended to filter such entries out.
Attached patch does that.
Thanks,
2015-08-13 Paul Pluzhnikov <ppluzhnikov@google.com>
* malloc/mtrace.pl: Filter out NULL entries.
--
Paul Pluzhnikov
Attachment:
mtrace-20150813.txt
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |