diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-01-10 11:10:54 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-01-10 11:10:54 +0000 |
commit | 73102f5002272e82b083fa912068a3777f3e0f2e (patch) | |
tree | 50cf72df0e7e49e3054d7ba5ce11fb9c8b3f2c2a | |
parent | 9fbdeb410d7d7e7383b20b71da4dd4bd481a8808 (diff) | |
download | glibc-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-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/generic/dl-tls.c | 9 | ||||
-rw-r--r-- | time/strptime_l.c | 2 |
3 files changed, 12 insertions, 4 deletions
@@ -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) |