mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
Use non-cancelable interfaces in setup code
This commit is contained in:
parent
10a52685af
commit
05f399e634
@ -1,5 +1,8 @@
|
|||||||
2011-05-15 Ulrich Drepper <drepper@gmail.com>
|
2011-05-15 Ulrich Drepper <drepper@gmail.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard):
|
||||||
|
Use non-cancelable interfaces.
|
||||||
|
|
||||||
[BZ #9809]
|
[BZ #9809]
|
||||||
* locale/iso-639.def: Add entry for Sorani.
|
* locale/iso-639.def: Add entry for Sorani.
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Operating system specific code for generic dynamic loader functions. Linux.
|
/* Operating system specific code for generic dynamic loader functions. Linux.
|
||||||
Copyright (C) 2000-2002,2004-2008, 2009 Free Software Foundation, Inc.
|
Copyright (C) 2000-2002,2004-2009,2011 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -21,6 +21,7 @@
|
|||||||
#include <dl-sysdep.h>
|
#include <dl-sysdep.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <not-cancel.h>
|
||||||
|
|
||||||
#ifndef MIN
|
#ifndef MIN
|
||||||
# define MIN(a,b) (((a)<(b))?(a):(b))
|
# define MIN(a,b) (((a)<(b))?(a):(b))
|
||||||
@ -67,11 +68,11 @@ _dl_setup_stack_chk_guard (void *dl_random)
|
|||||||
if (__builtin_expect (dl_random == NULL, 0))
|
if (__builtin_expect (dl_random == NULL, 0))
|
||||||
{
|
{
|
||||||
# ifdef ENABLE_STACKGUARD_RANDOMIZE
|
# ifdef ENABLE_STACKGUARD_RANDOMIZE
|
||||||
int fd = __open ("/dev/urandom", O_RDONLY);
|
int fd = open_not_cancel_2 ("/dev/urandom", O_RDONLY);
|
||||||
if (fd >= 0)
|
if (fd >= 0)
|
||||||
{
|
{
|
||||||
ssize_t reslen = __read (fd, &ret, sizeof (ret));
|
ssize_t reslen = read_not_cancel (fd, &ret, sizeof (ret));
|
||||||
__close (fd);
|
close_not_cancel_no_status (fd);
|
||||||
if (reslen == (ssize_t) sizeof (ret))
|
if (reslen == (ssize_t) sizeof (ret))
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user