]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Use non-cancelable interfaces in setup code
authorUlrich Drepper <drepper@gmail.com>
Sun, 15 May 2011 13:40:30 +0000 (09:40 -0400)
committerUlrich Drepper <drepper@gmail.com>
Sun, 15 May 2011 13:40:30 +0000 (09:40 -0400)
ChangeLog
sysdeps/unix/sysv/linux/dl-osinfo.h

index f9ab6dbb1b4d62010729a6a32b0bc7fdcf6b24ab..ed1754db233204231df66a9302bca76437beea3e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 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]
        * locale/iso-639.def: Add entry for Sorani.
 
index df07869bc5d795c9da96fcf59f5015d1d6d3e252..ffe5d586b506efb42b4c03994461a0ac999a4cfe 100644 (file)
@@ -1,5 +1,5 @@
 /* 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.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@
 #include <dl-sysdep.h>
 #include <fcntl.h>
 #include <stdint.h>
+#include <not-cancel.h>
 
 #ifndef MIN
 # 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))
     {
 # ifdef ENABLE_STACKGUARD_RANDOMIZE
-      int fd = __open ("/dev/urandom", O_RDONLY);
+      int fd = open_not_cancel_2 ("/dev/urandom", O_RDONLY);
       if (fd >= 0)
        {
-         ssize_t reslen = __read (fd, &ret, sizeof (ret));
-         __close (fd);
+         ssize_t reslen = read_not_cancel (fd, &ret, sizeof (ret));
+         close_not_cancel_no_status (fd);
          if (reslen == (ssize_t) sizeof (ret))
            return ret;
        }