$OpenBSD: patch-src_common_resourc2_cpp,v 1.1.1.1 2004/07/16 21:01:35 todd Exp $
--- src/common/resourc2.cpp.orig	Wed Jan  9 10:52:53 2002
+++ src/common/resourc2.cpp	Wed Apr 30 14:31:53 2003
@@ -76,6 +76,8 @@
 
 #include "wx/settings.h"
 
+#define min(a, b)	(((a) < (b)) ? (a) : (b))
+
 #if ((defined(__BORLANDC__) || defined(__SC__)) && defined(__WIN16__))
 
 // Forward (private) declarations
@@ -116,7 +118,7 @@ bool wxReallocateResourceBuffer()
   {
     long newSize = wxResourceBufferSize + 1000;
     char *tmp = new char[(int)newSize];
-    strncpy(tmp, wxResourceBuffer, (int)wxResourceBufferCount);
+    strlcpy(tmp, wxResourceBuffer, newSize);
     delete[] wxResourceBuffer;
     wxResourceBuffer = tmp;
     wxResourceBufferSize = newSize;
@@ -292,9 +294,9 @@ bool wxResourceReadOneResource(FILE *fd,
   else if (strcmp(wxResourceBuffer, "static") != 0)
   {
     char buf[300];
-    strcpy(buf, _("Found "));
-    strncat(buf, wxResourceBuffer, 30);
-    strcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."));
+    strlcpy(buf, _("Found "), sizeof(buf));
+    strlcat(buf, wxResourceBuffer, min(30+1, sizeof(buf)));
+    strlcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."), sizeof(buf));
     wxLogWarning(buf);
     return FALSE;
   }
@@ -327,7 +329,7 @@ bool wxResourceReadOneResource(FILE *fd,
     return FALSE;
   }
   char nameBuf[100];
-  strncpy(nameBuf, wxResourceBuffer+1, 99);
+  strlcpy(nameBuf, wxResourceBuffer+1, sizeof(nameBuf));
 
   // =
   if (!wxGetResourceToken(fd))
@@ -1357,9 +1359,9 @@ bool wxResourceReadOneResourceString(cha
   else if (strcmp(wxResourceBuffer, "static") != 0)
   {
     char buf[300];
-    strcpy(buf, _("Found "));
-    strncat(buf, wxResourceBuffer, 30);
-    strcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."));
+    strlcpy(buf, _("Found "), sizeof(buf));
+    strlcat(buf, wxResourceBuffer, min(30+1, sizeof(buf)));
+    strlcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."), sizeof(buf));
     wxLogWarning(buf);
     return FALSE;
   }
@@ -1392,7 +1394,7 @@ bool wxResourceReadOneResourceString(cha
     return FALSE;
   }
   char nameBuf[100];
-  strncpy(nameBuf, wxResourceBuffer+1, 99);
+  strlcpy(nameBuf, wxResourceBuffer+1, sizeof(nameBuf));
 
   // =
   if (!wxGetResourceTokenString(s))
