aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-01-10 11:10:54 +0000
committerUlrich Drepper <drepper@redhat.com>2005-01-10 11:10:54 +0000
commit73102f5002272e82b083fa912068a3777f3e0f2e (patch)
tree50cf72df0e7e49e3054d7ba5ce11fb9c8b3f2c2a
parent9fbdeb410d7d7e7383b20b71da4dd4bd481a8808 (diff)
downloadglibc-73102f5002272e82b083fa912068a3777f3e0f2e.tar
glibc-73102f5002272e82b083fa912068a3777f3e0f2e.tar.gz
glibc-73102f5002272e82b083fa912068a3777f3e0f2e.tar.bz2
glibc-73102f5002272e82b083fa912068a3777f3e0f2e.zip
Update.
2005-01-10 Ulrich Drepper <drepper@redhat.com> * sysdeps/generic/dl-tls.c (_dl_next_tls_modid): Fix assertion and recognition of last entry.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/generic/dl-tls.c9
-rw-r--r--time/strptime_l.c2
3 files changed, 12 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 7f124f1ce2..b1295b44f7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-10 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/generic/dl-tls.c (_dl_next_tls_modid): Fix assertion and
+ recognition of last entry.
+
2005-01-09 Ulrich Drepper <drepper@redhat.com>
* elf/dl-runtime.c: Inlcude <sys/param.h>.
diff --git a/sysdeps/generic/dl-tls.c b/sysdeps/generic/dl-tls.c
index 10b7f2c65a..099742ceff 100644
--- a/sysdeps/generic/dl-tls.c
+++ b/sysdeps/generic/dl-tls.c
@@ -67,7 +67,10 @@ _dl_next_tls_modid (void)
/* Note that this branch will never be executed during program
start since there are no gaps at that time. Therefore it
does not matter that the dl_tls_dtv_slotinfo is not allocated
- yet when the function is called for the first times. */
+ yet when the function is called for the first times.
+
+ NB: the offset +1 is due to the fact that DTV[0] is used
+ for something else. */
result = GL(dl_tls_static_nelem) + 1;
/* If the following would not be true we mustn't have assumed
there is a gap. */
@@ -90,11 +93,11 @@ _dl_next_tls_modid (void)
}
while ((runp = runp->next) != NULL);
- if (result >= GL(dl_tls_max_dtv_idx))
+ if (result > GL(dl_tls_max_dtv_idx))
{
/* The new index must indeed be exactly one higher than the
previous high. */
- assert (result == GL(dl_tls_max_dtv_idx));
+ assert (result == GL(dl_tls_max_dtv_idx) + 1);
/* There is no gap anymore. */
GL(dl_tls_dtv_gaps) = false;
diff --git a/time/strptime_l.c b/time/strptime_l.c
index 7deaef8fb4..01c4f8282a 100644
--- a/time/strptime_l.c
+++ b/time/strptime_l.c
@@ -544,8 +544,8 @@ __strptime_internal (rp, fmt, tm, decided, era_cnt LOCALE_PARAM)
is_pm = 1;
else
return NULL;
- break;
}
+ break;
case 'r':
#ifdef _NL_CURRENT
if (*decided != raw)