openbsd-ports/devel/gettext/patches/patch-gettext-runtime_intl_dcigettext_c
2010-07-03 03:23:22 +00:00

32 lines
1.3 KiB
Plaintext

$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
/* Create a new entry and add it to the search tree. */
size_t msgid_len;
size_t size;
+#ifdef HAVE_PER_THREAD_LOCALE
+ size_t localename_len;
+#endif
struct known_translation_t *newp;
msgid_len = strlen (msgid1) + 1;
size = offsetof (struct known_translation_t, msgid)
+ msgid_len + domainname_len + 1;
#ifdef HAVE_PER_THREAD_LOCALE
- size += strlen (localename) + 1;
+ localename_len = strlen (localename);
+ size += localename_len + 1;
#endif
newp = (struct known_translation_t *) malloc (size);
if (newp != NULL)
@@ -791,7 +795,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;
- strcpy (new_localename, localename);
+ memcpy (new_localename, localename, localename_len + 1);
#endif
newp->domainname = new_domainname;
newp->category = category;