about summary refs log tree commit diff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2004-10-20 10:47:20 +0000
committerJakub Jelinek <jakub@redhat.com>2004-10-20 10:47:20 +0000
commit75c95410b7b80289663bf2ba828e84d2c7890369 (patch)
tree83f4b406b0d4d0a9bcf68f6c56feb00fc59406fa /sysdeps/generic
parente9e4030ae5f685547a9f7ead1362c7526aa88b80 (diff)
downloadglibc-75c95410b7b80289663bf2ba828e84d2c7890369.tar.gz
glibc-75c95410b7b80289663bf2ba828e84d2c7890369.tar.xz
glibc-75c95410b7b80289663bf2ba828e84d2c7890369.zip
Updated to fedora-glibc-20041018T0940
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/ldsodefs.h3
-rw-r--r--sysdeps/generic/readonly-area.c15
2 files changed, 12 insertions, 6 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index f1062e7fa6..fd45bdc87f 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -785,7 +785,8 @@ extern void _dl_fini (void) internal_function;
    any shared object mappings.  The `r_state' member of `struct r_debug'
    says what change is taking place.  This function's address is
    the value of the `r_brk' member.  */
-extern void _dl_debug_state (void) attribute_hidden;
+extern void _dl_debug_state (void);
+rtld_hidden_proto (_dl_debug_state)
 
 /* Initialize `struct r_debug' if it has not already been done.  The
    argument is the run-time load address of the dynamic linker, to be put
diff --git a/sysdeps/generic/readonly-area.c b/sysdeps/generic/readonly-area.c
index df5b96015c..4b8172f193 100644
--- a/sysdeps/generic/readonly-area.c
+++ b/sysdeps/generic/readonly-area.c
@@ -16,14 +16,19 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <stdlib.h>
+
 /* Return 1 if the whole area PTR .. PTR+SIZE is not writable.
    Return -1 if it is writable.  */
 
-#include <stdlib.h>
-
 int
-__readonly_str (const void *ptr, size_t size)
+__readonly_area (const void *ptr, size_t size)
 {
-  /* The conservative answer is that all strings are writable.  */
-  return -1;
+  /* We cannot determine in general whether memory is writable or not.
+     This must be handled in a system-dependent manner.  to not
+     unconditionally break code we need to return here a positive
+     answer.  This disables this security measure but that is the
+     price people have to pay for using systems without a real
+     implementation of this interface.  */
+  return 1;
 }