Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 27 Jan 2003 22:08:50 +0000 (22:08 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 27 Jan 2003 22:08:50 +0000 (22:08 +0000)
2003-01-27  Ulrich Drepper  <drepper@redhat.com>

* elf/dl-reloc.c (allocate_static_tls): Avoid arithmetic
wrap-around in test.

ChangeLog
elf/dl-reloc.c

index 37cebd0..7991f98 100644 (file)
--- 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
index 37c4be2..82e205a 100644 (file)
@@ -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;