$OpenBSD: patch-src_LexHTML_cxx,v 1.1.1.1 2003/08/14 18:24:31 sturm Exp $
--- src/LexHTML.cxx.orig	2003-08-14 01:19:02.000000000 +1000
+++ src/LexHTML.cxx	2003-08-14 01:21:26.000000000 +1000
@@ -287,7 +287,7 @@ static int classifyWordHTVB(unsigned int
 		return SCE_HB_DEFAULT;
 }
 
-static void classifyWordHTPy(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler, char *prevWord, script_mode inScriptType) {
+static void classifyWordHTPy(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler, char *prevWord, size_t prevWord_len, script_mode inScriptType) {
 	bool wordIsNumber = IsADigit(styler[start]);
 	char s[30 + 1];
 	unsigned int i = 0;
@@ -305,7 +305,7 @@ static void classifyWordHTPy(unsigned in
 	else if (keywords.InList(s))
 		chAttr = SCE_HP_WORD;
 	styler.ColourTo(end, statePrintForState(chAttr, inScriptType));
-	strcpy(prevWord, s);
+	strlcpy(prevWord, s, prevWord_len);
 }
 
 // Update the word colour to default or keyword
@@ -724,7 +724,7 @@ static void ColouriseHyperTextDoc(unsign
 				classifyWordHTVB(styler.GetStartSegment(), i - 1, keywords3, styler, inScriptType);
 				break;
 			case SCE_HP_WORD:
-				classifyWordHTPy(styler.GetStartSegment(), i - 1, keywords4, styler, prevWord, inScriptType);
+				classifyWordHTPy(styler.GetStartSegment(), i - 1, keywords4, styler, prevWord, sizeof(prevWord), inScriptType);
 				break;
 			case SCE_HPHP_WORD:
 				classifyWordHTPHP(styler.GetStartSegment(), i - 1, keywords5, styler);
@@ -1369,7 +1369,7 @@ static void ColouriseHyperTextDoc(unsign
 			break;
 		case SCE_HP_WORD:
 			if (!iswordchar(ch)) {
-				classifyWordHTPy(styler.GetStartSegment(), i - 1, keywords4, styler, prevWord, inScriptType);
+				classifyWordHTPy(styler.GetStartSegment(), i - 1, keywords4, styler, prevWord, sizeof(prevWord), inScriptType);
 				state = SCE_HP_DEFAULT;
 				if (ch == '#') {
 					state = SCE_HP_COMMENTLINE;
