replace stpcpy() calls to silence ld warnings; ok sthen@

This commit is contained in:
naddy 2012-07-13 19:43:18 +00:00
parent 4b01c3d5eb
commit b14487677b
4 changed files with 143 additions and 10 deletions

View File

@ -1,9 +1,9 @@
# $OpenBSD: Makefile,v 1.55 2012/01/26 22:08:26 naddy Exp $
# $OpenBSD: Makefile,v 1.56 2012/07/13 19:43:18 naddy Exp $
COMMENT= GNU gettext
DISTNAME= gettext-0.18.1
REVISION= 1
REVISION= 2
SHARED_LIBS += intl 6.0 # .9.1
SHARED_LIBS += asprintf 1.0 # .0.0
SHARED_LIBS += gettextlib 3.0 # .0.0

View File

@ -1,5 +1,2 @@
MD5 (gettext-0.18.1.tar.gz) = KuBPlg1foDd0Y23e8Z69vw==
RMD160 (gettext-0.18.1.tar.gz) = RKDgYMH10nRiq41Y4B2i/qWkiqU=
SHA1 (gettext-0.18.1.tar.gz) = FPhwpUU5MogPgc6Qqlmz2p1Nr1w=
SHA256 (gettext-0.18.1.tar.gz) = N6lHu65jwxc6LiyqDmH4K4bCPz4/AS+PMJ7q+Q2DnHs=
SIZE (gettext-0.18.1.tar.gz) = 15140564

View File

@ -1,7 +1,63 @@
$OpenBSD: patch-gettext-runtime_intl_dcigettext_c,v 1.2 2010/07/03 03:23:22 naddy Exp $
--- gettext-runtime/intl/dcigettext.c.orig Mon Jun 28 20:23:14 2010
+++ gettext-runtime/intl/dcigettext.c Mon Jun 28 20:25:07 2010
@@ -769,13 +769,17 @@ DCIGETTEXT (const char *domainname, const char *msgid1
$OpenBSD: patch-gettext-runtime_intl_dcigettext_c,v 1.3 2012/07/13 19:43:18 naddy Exp $
--- gettext-runtime/intl/dcigettext.c.orig Sat Dec 26 14:42:37 2009
+++ gettext-runtime/intl/dcigettext.c Tue Jul 10 20:08:14 2012
@@ -507,6 +507,7 @@ DCIGETTEXT (const char *domainname, const char *msgid1
const char *localename;
#endif
size_t domainname_len;
+ size_t xdomainname_len;
/* If no real MSGID is given return NULL. */
if (msgid1 == NULL)
@@ -627,6 +628,7 @@ DCIGETTEXT (const char *domainname, const char *msgid1
/* We have a relative path. Make it absolute now. */
size_t dirname_len = strlen (dirname) + 1;
size_t path_max;
+ size_t resolved_dirname_len;
char *resolved_dirname;
char *ret;
@@ -635,7 +637,8 @@ DCIGETTEXT (const char *domainname, const char *msgid1
for (;;)
{
- resolved_dirname = (char *) alloca (path_max + dirname_len);
+ resolved_dirname_len = path_max + dirname_len;
+ resolved_dirname = (char *) alloca (resolved_dirname_len);
ADD_BLOCK (block_list, tmp_dirname);
__set_errno (0);
@@ -652,7 +655,8 @@ DCIGETTEXT (const char *domainname, const char *msgid1
error but simply return the default string. */
goto return_untranslated;
- stpcpy (stpcpy (strchr (resolved_dirname, '\0'), "/"), dirname);
+ strlcat (resolved_dirname, "/", resolved_dirname_len);
+ strlcat (resolved_dirname, dirname, resolved_dirname_len);
dirname = resolved_dirname;
}
#ifndef IN_LIBGLOCALE
@@ -670,13 +674,14 @@ DCIGETTEXT (const char *domainname, const char *msgid1
#endif
domainname_len = strlen (domainname);
- xdomainname = (char *) alloca (strlen (categoryname)
- + domainname_len + 5);
+ xdomainname_len = strlen (categoryname) + domainname_len + 5;
+ xdomainname = (char *) alloca (xdomainname_len);
ADD_BLOCK (block_list, xdomainname);
- stpcpy ((char *) mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
- domainname, domainname_len),
- ".mo");
+ strlcpy (xdomainname, categoryname, xdomainname_len);
+ strlcat (xdomainname, "/", xdomainname_len);
+ strlcat (xdomainname, domainname, xdomainname_len);
+ strlcat (xdomainname, ".mo", xdomainname_len);
/* Creating working area. */
single_locale = (char *) alloca (strlen (categoryvalue) + 1);
@@ -769,13 +774,17 @@ DCIGETTEXT (const char *domainname, const char *msgid1
/* Create a new entry and add it to the search tree. */
size_t msgid_len;
size_t size;
@ -20,7 +76,7 @@ $OpenBSD: patch-gettext-runtime_intl_dcigettext_c,v 1.2 2010/07/03 03:23:22 nadd
#endif
newp = (struct known_translation_t *) malloc (size);
if (newp != NULL)
@@ -791,7 +795,7 @@ DCIGETTEXT (const char *domainname, const char *msgid1
@@ -791,7 +800,7 @@ DCIGETTEXT (const char *domainname, const char *msgid1
memcpy (new_domainname, domainname, domainname_len + 1);
#ifdef HAVE_PER_THREAD_LOCALE
new_localename = new_domainname + domainname_len + 1;

View File

@ -0,0 +1,80 @@
$OpenBSD: patch-gettext-runtime_intl_l10nflist_c,v 1.1 2012/07/13 19:43:18 naddy Exp $
--- gettext-runtime/intl/l10nflist.c.orig Sun Jun 28 21:44:04 2009
+++ gettext-runtime/intl/l10nflist.c Tue Jul 10 23:41:41 2012
@@ -183,6 +183,7 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_
struct loaded_l10nfile **lastp;
struct loaded_l10nfile *retval;
char *cp;
+ size_t abs_filename_len;
size_t dirlist_count;
size_t entries;
int cnt;
@@ -193,7 +194,7 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_
dirlist_len = 0;
/* Allocate room for the full file name. */
- abs_filename = (char *) malloc (dirlist_len
+ abs_filename_len = (dirlist_len
+ strlen (language)
+ ((mask & XPG_TERRITORY) != 0
? strlen (territory) + 1 : 0)
@@ -204,6 +205,7 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_
+ ((mask & XPG_MODIFIER) != 0
? strlen (modifier) + 1 : 0)
+ 1 + strlen (filename) + 1);
+ abs_filename = (char *) malloc (abs_filename_len);
if (abs_filename == NULL)
return NULL;
@@ -218,31 +220,31 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_
cp[-1] = '/';
}
- cp = stpcpy (cp, language);
+ strlcat (abs_filename, language, abs_filename_len);
if ((mask & XPG_TERRITORY) != 0)
{
- *cp++ = '_';
- cp = stpcpy (cp, territory);
+ strlcat (abs_filename, "_", abs_filename_len);
+ strlcat (abs_filename, territory, abs_filename_len);
}
if ((mask & XPG_CODESET) != 0)
{
- *cp++ = '.';
- cp = stpcpy (cp, codeset);
+ strlcat (abs_filename, ".", abs_filename_len);
+ strlcat (abs_filename, codeset, abs_filename_len);
}
if ((mask & XPG_NORM_CODESET) != 0)
{
- *cp++ = '.';
- cp = stpcpy (cp, normalized_codeset);
+ strlcat (abs_filename, ".", abs_filename_len);
+ strlcat (abs_filename, normalized_codeset, abs_filename_len);
}
if ((mask & XPG_MODIFIER) != 0)
{
- *cp++ = '@';
- cp = stpcpy (cp, modifier);
+ strlcat (abs_filename, "@", abs_filename_len);
+ strlcat (abs_filename, modifier, abs_filename_len);
}
- *cp++ = '/';
- stpcpy (cp, filename);
+ strlcat (abs_filename, "/", abs_filename_len);
+ strlcat (abs_filename, filename, abs_filename_len);
/* Look in list of already loaded domains whether it is already
available. */
@@ -366,7 +368,7 @@ _nl_normalize_codeset (const char *codeset, size_t nam
if (retval != NULL)
{
if (only_digit)
- wp = stpcpy (retval, "iso");
+ wp = (char *) memcpy (retval, "iso", 3) + 3;
else
wp = retval;