-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
#include <locale.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include "localeinfo.h"
const char *revision;
struct loaded_l10nfile *locale_file;
- if ((*name)[0] == '\0')
+ if ((*name)[0] == '\0'
+ /* In SUID binaries we must not allow people to access files
+ outside the dedicated locale directories. */
+ || (__libc_enable_secure
+ && memchr (*name, '/', _nl_find_language (*name) - *name) != NULL))
{
/* The user decides which locale to use by setting environment
variables. */