+2007-07-11 Jakub Jelinek <jakub@redhat.com>
+
+ * finddomain.c (_nl_find_domain): If _nl_explode_name returned -1,
+ return NULL.
+ * explodename.c (_nl_explode_name): Return -1 if _nl_normalize_codeset
+ failed.
+
2007-06-10 Bruno Haible <bruno@clisp.org>
* printf-parse.c: Don't include config.h and the specification
-/* Copyright (C) 1995-1998, 2000-2001, 2003, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1998, 2000-2001, 2003, 2005, 2007 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This program is free software; you can redistribute it and/or modify it
{
*normalized_codeset = _nl_normalize_codeset (*codeset,
cp - *codeset);
- if (strcmp (*codeset, *normalized_codeset) == 0)
+ if (*normalized_codeset == NULL)
+ return -1;
+ else if (strcmp (*codeset, *normalized_codeset) == 0)
free ((char *) *normalized_codeset);
else
mask |= XPG_NORM_CODESET;
/* Handle list of needed message catalogs
- Copyright (C) 1995-1999, 2000-2001, 2003-2006 Free Software Foundation, Inc.
+ Copyright (C) 1995-1999, 2000-2001, 2003-2007 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.org>, 1995.
This program is free software; you can redistribute it and/or modify it
look for the language. Termination symbols are `_', '.', and `@'. */
mask = _nl_explode_name (locale, &language, &modifier, &territory,
&codeset, &normalized_codeset);
+ if (mask == -1)
+ /* This means we are out of core. */
+ return NULL;
/* We need to protect modifying the _NL_LOADED_DOMAINS data. */
gl_rwlock_wrlock (lock);