+2005-03-19 Bruno Haible <bruno@clisp.org>
+
+ * intl/dcigettext.c (struct known_translation_t): Change type of
+ domainname field to 'const char *'.
+ (DCIGETTEXT): Remove const-cast.
+
2005-03-29 Thorsten Kukuk <kukuk@suse.de>
+ [BZ #661]
+ * grp/initgroups.c (internal_getgrouplist): Check if we have
+ enough space before adding the primary group to the list.
+
* posix/tst-execle1.c (do_test): Fix execle arguments.
* posix/tst-execle2.c (do_test): Likewise.
-/* Copyright (C) 1989,91,93,1996-2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1989,91,93,1996-2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
/* Start is one, because we have the first group as parameter. */
long int start = 1;
- (*groupsp)[0] = group;
+ /* Never store more than the starting *SIZE number of elements. */
+ if (*size > 0)
+ (*groupsp)[0] = group;
if (__nss_group_database != NULL)
{
struct known_translation_t
{
/* Domain in which to search. */
- char *domainname;
+ const char *domainname;
/* The category. */
int category;
search = (struct known_translation_t *)
alloca (offsetof (struct known_translation_t, msgid) + msgid_len);
memcpy (search->msgid, msgid1, msgid_len);
- search->domainname = (char *) domainname;
+ search->domainname = domainname;
search->category = category;
/* Since tfind/tsearch manage a balanced tree, concurrent tfind and
+ msgid_len + domainname_len + 1);
if (newp != NULL)
{
- newp->domainname =
- mempcpy (newp->msgid, msgid1, msgid_len);
- memcpy (newp->domainname, domainname, domainname_len + 1);
+ char *new_domainname;
+
+ new_domainname = mempcpy (newp->msgid, msgid1, msgid_len);
+ memcpy (new_domainname, domainname, domainname_len + 1);
+ newp->domainname = new_domainname;
newp->category = category;
newp->counter = _nl_msg_cat_cntr;
newp->domain = domain;