$OpenBSD: patch-test_cscodec-8859_c,v 1.1 2013/05/03 07:32:34 bentley Exp $
--- test/cscodec-8859.c.orig	Fri Apr 19 12:06:57 2013
+++ test/cscodec-8859.c	Thu Apr 25 16:51:19 2013
@@ -169,7 +169,7 @@ bool handle_line(const char *data, size_t datalen, voi
 			for (end = enc; !isspace(*end); end++)
 				;
 
-			enc_name = alloca(end - enc + 1);
+			enc_name = malloc(end - enc + 1);
 			memcpy(enc_name, enc, end - enc);
 			enc_name[end - enc] = 0;
 
@@ -178,6 +178,8 @@ bool handle_line(const char *data, size_t datalen, voi
 					PARSERUTILS_OK);
 
 			ctx->hadenc = true;
+
+			free(enc_name);
 		}
 	} else {
 		if (ctx->indata) {
@@ -197,7 +199,7 @@ void run_test(line_ctx *ctx)
 {
 	static int testnum;
 	size_t destlen = ctx->bufused * 4;
-	uint8_t *dest = alloca(destlen);
+	uint8_t *dest = malloc(destlen);
 	uint8_t *pdest = dest;
 	const uint8_t *psrc = ctx->buf;
 	size_t srclen = ctx->bufused;
@@ -213,7 +215,7 @@ void run_test(line_ctx *ctx)
 				&pdest, &destlen) == ctx->exp_ret);
 	} else {
 		size_t templen = ctx->bufused * 4;
-		uint8_t *temp = alloca(templen);
+		uint8_t *temp = malloc(templen);
 		uint8_t *ptemp = temp;
 		const uint8_t *ptemp2;
 		size_t templen2;
@@ -237,6 +239,8 @@ void run_test(line_ctx *ctx)
 			assert(templen2 == 0);
 			assert(temp + (ctx->bufused * 4 - templen) == ptemp2);
 		}
+
+		free(temp);
 	}
 	if (ctx->exp_ret == PARSERUTILS_OK) {
 		assert(srclen == 0);
@@ -259,5 +263,7 @@ void run_test(line_ctx *ctx)
 
 	assert(pdest == dest + ctx->expused);
 	assert(memcmp(dest, ctx->exp, ctx->expused) == 0);
+
+	free(dest);
 }
 
