1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-07 06:43:00 +03:00
This commit is contained in:
Paul Pluzhnikov
2015-09-01 08:48:15 -07:00
parent 74589f738e
commit 2d8e36e691
4 changed files with 32 additions and 2 deletions

View File

@@ -1,3 +1,10 @@
2015-09-01 Paul Pluzhnikov <ppluzhnikov@google.com>
[BZ #18757]
* libio/iofopncook.c (_IO_fopencookie): Set errno on failure.
* libio/test-fmemopen.c (do_bz18820): Extend the test to cover
BZ #18757.
2015-09-01 Paul Pluzhnikov <ppluzhnikov@google.com> 2015-09-01 Paul Pluzhnikov <ppluzhnikov@google.com>
* malloc/mtrace.pl: Filter out NULL entries. * malloc/mtrace.pl: Filter out NULL entries.

5
NEWS
View File

@@ -11,8 +11,9 @@ Version 2.23
2898, 14341, 15786, 16141, 16517, 16519, 16520, 16734, 16973, 17787, 2898, 14341, 15786, 16141, 16517, 16519, 16520, 16734, 16973, 17787,
17905, 18084, 18086, 18240, 18265, 18370, 18421, 18480, 18525, 18610, 17905, 18084, 18086, 18240, 18265, 18370, 18421, 18480, 18525, 18610,
18618, 18647, 18661, 18674, 18681, 18778, 18781, 18787, 18789, 18790, 18618, 18647, 18661, 18674, 18681, 18757, 18778, 18781, 18787, 18789,
18795, 18796, 18820, 18823, 18824, 18863, 18870, 18873, 18887. 18790, 18795, 18796, 18820, 18823, 18824, 18863, 18870, 18873, 18887.
* The obsolete header <regexp.h> has been removed. Programs that require * The obsolete header <regexp.h> has been removed. Programs that require
this header must be updated to use <regex.h> instead. this header must be updated to use <regex.h> instead.

View File

@@ -189,6 +189,7 @@ _IO_fopencookie (cookie, mode, io_functions)
read_write = _IO_NO_READS|_IO_IS_APPENDING; read_write = _IO_NO_READS|_IO_IS_APPENDING;
break; break;
default: default:
__set_errno (EINVAL);
return NULL; return NULL;
} }
if (mode[0] == '+' || (mode[0] == 'b' && mode[1] == '+')) if (mode[0] == '+' || (mode[0] == 'b' && mode[1] == '+'))

View File

@@ -19,6 +19,7 @@
static char buffer[] = "foobar"; static char buffer[] = "foobar";
#include <errno.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <errno.h> #include <errno.h>
@@ -30,6 +31,7 @@ do_bz18820 (void)
char ch; char ch;
FILE *stream; FILE *stream;
errno = 0;
stream = fmemopen (&ch, 1, "?"); stream = fmemopen (&ch, 1, "?");
if (stream) if (stream)
{ {
@@ -37,6 +39,11 @@ do_bz18820 (void)
fclose (stream); fclose (stream);
return 1; return 1;
} }
if (errno != EINVAL)
{
printf ("fmemopen: got %i, expected EINVAL (%i)\n", errno, EINVAL);
return 10;
}
stream = fmemopen (NULL, 42, "?"); stream = fmemopen (NULL, 42, "?");
if (stream) if (stream)
@@ -46,6 +53,20 @@ do_bz18820 (void)
return 2; return 2;
} }
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; return 0;
} }