about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-01-27 22:08:50 +0000
committerUlrich Drepper <drepper@redhat.com>2003-01-27 22:08:50 +0000
commitb7e033f7be24bc4f2019f949b74f99ed862810d3 (patch)
tree042cdd8e1f23230066092687f44f5d87d60d8004
parent62f29da7cbc527e8f8dda4f5101e6ac504c98505 (diff)
downloadglibc-b7e033f7be24bc4f2019f949b74f99ed862810d3.tar.gz
glibc-b7e033f7be24bc4f2019f949b74f99ed862810d3.tar.xz
glibc-b7e033f7be24bc4f2019f949b74f99ed862810d3.zip
Update.
2003-01-27  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-reloc.c (allocate_static_tls): Avoid arithmetic
	wrap-around in test.
-rw-r--r--ChangeLog5
-rw-r--r--elf/dl-reloc.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 37cebd01be..7991f98b50 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2003-01-27  Ulrich Drepper  <drepper@redhat.com>
+
+	* elf/dl-reloc.c (allocate_static_tls): Avoid arithmetic
+	wrap-around in test.
+
 2003-01-26  Andreas Schwab  <schwab@suse.de>
 
 	* sysdeps/wordsize-32/divdi3.c: Export the functions only as
diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c
index 37c4be2049..82e205a6f7 100644
--- a/elf/dl-reloc.c
+++ b/elf/dl-reloc.c
@@ -1,5 +1,5 @@
 /* Relocate a shared object and resolve its references to other loaded objects.
-   Copyright (C) 1995,96,97,98,99,2000,2001,2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-2002, 2003 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
@@ -45,15 +45,15 @@ static bool
 allocate_static_tls (struct link_map *map)
 {
   size_t offset = roundup (GL(dl_tls_static_used), map->l_tls_align);
-  if (offset + map->l_tls_blocksize > (GL(dl_tls_static_size)
+  if (offset + map->l_tls_blocksize
 # if TLS_TCB_AT_TP
-				       - TLS_TCB_SIZE
+      + TLS_TCB_SIZE
 # elif TLS_DTV_AT_TP
   /* dl_tls_static_used includes the TCB at the beginning.  */
 # else
 #  error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
 # endif
-				       ))
+      > GL(dl_tls_static_size))
     return false;
   map->l_tls_offset = offset;
   GL(dl_tls_static_used) = offset + map->l_tls_blocksize;