_nl_load_locale_from_archive (int category, const char **namep)
has
for (cnt = 0; cnt < __LC_LAST; ++cnt)
if (cnt != LC_ALL)
{
lia->data[cnt] = _nl_intern_locale_data (cnt,
results[cnt].addr,
results[cnt].len);
if (__glibc_likely (lia->data[cnt] != NULL))
{
...
}
}
lia->data[cnt] can be NULL, which happens to en_US.UTF-8 with
LC_COLLATE. But this won't happen if glibc is configured with
--enable-hardcoded-path-in-tests. We should also check
dead->data[category] != NULL.
* locale/loadarchive.c (_nl_archive_subfreeres): Also check
dead->data[category] != NULL.
+2015-08-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * locale/loadarchive.c (_nl_archive_subfreeres): Also check
+ dead->data[category] != NULL.
+
2015-08-05 Joseph Myers <joseph@codesourcery.com>
[BZ #18647]
free (dead->name);
for (category = 0; category < __LC_LAST; ++category)
- if (category != LC_ALL)
+ if (category != LC_ALL && dead->data[category] != NULL)
{
/* _nl_unload_locale just does this free for the archive case. */
if (dead->data[category]->private.cleanup)