$OpenBSD: patch-src_common_resource_cpp,v 1.1.1.1 2004/07/16 21:01:35 todd Exp $
--- src/common/resource.cpp.orig	Tue Nov  5 06:31:56 2002
+++ src/common/resource.cpp	Wed Apr 30 14:32:13 2003
@@ -84,6 +84,8 @@
 #include "wx/settings.h"
 #include "wx/stream.h"
 
+#define min(a, b)	(((a) < (b)) ? (a) : (b))
+
 // Forward (private) declarations
 bool wxResourceInterpretResources(wxResourceTable& table, wxExprDatabase& db);
 wxItemResource *wxResourceInterpretDialog(wxResourceTable& table, wxExpr *expr, bool isPanel = FALSE);
@@ -1514,7 +1516,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;
@@ -1811,9 +1813,9 @@ bool wxResourceReadOneResource(FILE *fd,
     else if (strcmp(wxResourceBuffer, "static") != 0)
     {
         wxChar buf[300];
-        wxStrcpy(buf, _("Found "));
-        wxStrncat(buf, wxConvCurrent->cMB2WX(wxResourceBuffer), 30);
-        wxStrcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."));
+        strlcpy(buf, _("Found "), sizeof(buf));
+        strlcat(buf, wxConvCurrent->cMB2WX(wxResourceBuffer), min(30+1, sizeof(buf)));
+        strlcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."), sizeof(buf));
         wxLogWarning(buf);
         return FALSE;
     }
@@ -1941,9 +1943,9 @@ bool wxResourceReadOneResource(wxInputSt
     else if (strcmp(wxResourceBuffer, "static") != 0)
     {
         wxChar buf[300];
-        wxStrcpy(buf, _("Found "));
-        wxStrncat(buf, wxConvLibc.cMB2WX(wxResourceBuffer), 30);
-        wxStrcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."));
+        strlcpy(buf, _("Found "), sizeof(buf));
+        strlcat(buf, wxConvLibc.cMB2WX(wxResourceBuffer), min(30+1, sizeof(buf)));
+        strlcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."), sizeof(buf));
         wxLogWarning(buf);
         return FALSE;
     }
@@ -1976,7 +1978,7 @@ bool wxResourceReadOneResource(wxInputSt
         return FALSE;
     }
     char nameBuf[100];
-    strncpy(nameBuf, wxResourceBuffer+1, 99);
+    strlcpy(nameBuf, wxResourceBuffer+1, sizeof(nameBuf));
 
     // =
     if (!wxGetResourceToken(fd))
@@ -3025,9 +3027,9 @@ bool wxResourceReadOneResourceString(cha
     else if (strcmp(wxResourceBuffer, "static") != 0)
     {
         wxChar buf[300];
-        wxStrcpy(buf, _("Found "));
-        wxStrncat(buf, wxConvCurrent->cMB2WX(wxResourceBuffer), 30);
-        wxStrcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."));
+        strlcpy(buf, _("Found "), sizeof(buf));
+        strlcat(buf, wxConvCurrent->cMB2WX(wxResourceBuffer), min(30+1, sizeof(buf)));
+        strlcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."), sizeof(buf));
         wxLogWarning(buf);
         return FALSE;
     }
