diff options
Diffstat (limited to 'locale')
-rw-r--r-- | locale/lc-time.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/locale/lc-time.c b/locale/lc-time.c index efa56b8..203a49b 100644 --- a/locale/lc-time.c +++ b/locale/lc-time.c @@ -74,12 +74,16 @@ _nl_init_era_entries (void) } else { + struct era_entry *new_eras = eras; + if (num_eras != new_num_eras) - eras = (struct era_entry *) realloc (eras, - new_num_eras - * sizeof (struct era_entry)); - if (eras == NULL) + new_eras = + (struct era_entry *) realloc (eras, + new_num_eras + * sizeof (struct era_entry)); + if (new_eras == NULL) { + free (eras); num_eras = 0; eras = NULL; } @@ -87,6 +91,7 @@ _nl_init_era_entries (void) { const char *ptr = _NL_CURRENT (LC_TIME, _NL_TIME_ERA_ENTRIES); num_eras = new_num_eras; + eras = new_eras; for (cnt = 0; cnt < num_eras; ++cnt) { |