mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
Fix BZ #18757.
This commit is contained in:
@@ -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
5
NEWS
@@ -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.
|
||||||
|
@@ -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] == '+'))
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user