32 lines
1.3 KiB
Plaintext
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;
|