[packages/arena] Rel 5

arekm arekm at pld-linux.org
Tue May 12 19:47:55 CEST 2026


commit 62e756362585f57b0997e2490b43f0af6b623f4b
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Tue May 12 19:47:42 2026 +0200

    Rel 5

 arena-foreign-fn-ptr.patch  | 49 +++++++++++++++++++++++++++++++++++++++++++++
 arena-format-security.patch | 44 ++++++++++++++++++++++++++++++++++++++++
 arena-lexer-yyunput.patch   | 30 +++++++++++++++++++++++++++
 arena.spec                  |  8 +++++++-
 4 files changed, 130 insertions(+), 1 deletion(-)
---
diff --git a/arena.spec b/arena.spec
index b00687e..4e39f30 100644
--- a/arena.spec
+++ b/arena.spec
@@ -2,11 +2,14 @@ Summary:	Arena Scripting Language with syntax and library similar to ANSI C
 Summary(pl.UTF-8):	Język skryptowy Arena ze składnią i biblioteką podobną do ANSI C
 Name:		arena
 Version:	0.9.9
-Release:	4
+Release:	5
 License:	distributable	
 Group:		Development/Languages
 Source0:	http://www.minimalinux.org/arena/%{name}-%{version}.tar.gz
 # Source0-md5:	16005f68f784d9062feccfaa83c1ad03
+Patch0:		%{name}-format-security.patch
+Patch1:		%{name}-foreign-fn-ptr.patch
+Patch2:		%{name}-lexer-yyunput.patch
 URL:		http://www.minimalinux.org/arena/
 BuildRequires:	autoconf
 BuildRequires:	automake
@@ -63,6 +66,9 @@ Przykłady dla języka skryptowego Arena.
 
 %prep
 %setup -q
+%patch 0 -p1
+%patch 1 -p1
+%patch 2 -p1
 
 %build
 %{__autoconf}
diff --git a/arena-foreign-fn-ptr.patch b/arena-foreign-fn-ptr.patch
new file mode 100644
index 0000000..c43a8a3
--- /dev/null
+++ b/arena-foreign-fn-ptr.patch
@@ -0,0 +1,49 @@
+--- arena-0.9.9.orig/libstdlib/foreign.c	2006-06-27 20:51:45.000000000 +0200
++++ arena-0.9.9/libstdlib/foreign.c	2026-05-12 19:18:53.649746378 +0200
+@@ -53,8 +53,8 @@
+  */
+ static void voidcall(void *f, long *a, double *d)
+ {
+-  void (*func)() = f;
+-  
++  void (*func)(...) = f;
++
+   (*func)(
+     a[ 0], a[ 1], a[ 2], a[ 3], a[ 4], a[ 5], a[ 6], a[ 7], a[ 8], a[ 9],
+     a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19],
+@@ -70,9 +70,9 @@
+  */
+ static int intcall(void *f, long *a, double *d)
+ {
+-  int (*func)() = f;
++  int (*func)(...) = f;
+   int res = 0;
+-  
++
+   res = (*func)(
+     a[ 0], a[ 1], a[ 2], a[ 3], a[ 4], a[ 5], a[ 6], a[ 7], a[ 8], a[ 9],
+     a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19],
+@@ -89,9 +89,9 @@
+  */
+ static double floatcall(void *f, long *a, double *d)
+ {
+-  double (*func)() = f;
++  double (*func)(...) = f;
+   double res = 0.0;
+-  
++
+   res = (*func)(
+     a[ 0], a[ 1], a[ 2], a[ 3], a[ 4], a[ 5], a[ 6], a[ 7], a[ 8], a[ 9],
+     a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19],
+@@ -108,9 +108,9 @@
+  */
+ static void *ptrcall(void *f, long *a, double *d)
+ {
+-  void *(*func)() = f;
++  void *(*func)(...) = f;
+   void *res = NULL;
+-  
++
+   res = (*func)(
+     a[ 0], a[ 1], a[ 2], a[ 3], a[ 4], a[ 5], a[ 6], a[ 7], a[ 8], a[ 9],
+     a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19],
diff --git a/arena-format-security.patch b/arena-format-security.patch
new file mode 100644
index 0000000..b32fe53
--- /dev/null
+++ b/arena-format-security.patch
@@ -0,0 +1,44 @@
+--- arena-0.9.9.orig/libparser/expr_dump.c	2006-05-21 18:35:08.000000000 +0200
++++ arena-0.9.9/libparser/expr_dump.c	2026-05-12 19:18:34.966518874 +0200
+@@ -263,7 +263,7 @@
+       parenthesis(ex, ex->inner, 1);
+       break;
+     case EXPR_ASSIGN_ARRAY:
+-      printf(ex->name);
++      printf("%s", ex->name);
+       expr_dump_index(ex->argc, ex->argv);
+       printf(" = ");
+       parenthesis(ex, ex->inner, 1);
+@@ -294,10 +294,10 @@
+       printf(")");
+       break;
+     case EXPR_REF:
+-      printf(ex->name);
++      printf("%s", ex->name);
+       break;
+     case EXPR_REF_ARRAY:
+-      printf(ex->name);
++      printf("%s", ex->name);
+       expr_dump_index(ex->argc, ex->argv);
+       break;
+     case EXPR_INDEX:
+@@ -316,7 +316,7 @@
+     case EXPR_CONST_BOOL:
+     case EXPR_CONST_INT:
+     case EXPR_CONST_FLOAT:
+-      printf(ex->name);
++      printf("%s", ex->name);
+       break;
+     case EXPR_CONST_STRING:
+       printf("\"%s\"", ex->name);
+--- arena-0.9.9.orig/libstdlib/print.c	2006-10-04 19:46:23.000000000 +0200
++++ arena-0.9.9/libstdlib/print.c	2026-05-12 19:18:38.159746378 +0200
+@@ -200,7 +200,7 @@
+           vallen = strlen(cfmt);
+           if (min > vallen) vallen = min;
+           buf = oom(realloc(buf, len + vallen + 1));
+-          vallen = sprintf(buf + len, cfmt);
++          vallen = sprintf(buf + len, "%s", cfmt);
+           break;
+         case VALUE_TYPE_INT:
+           vallen = (min > 32) ? min : 32;
diff --git a/arena-lexer-yyunput.patch b/arena-lexer-yyunput.patch
new file mode 100644
index 0000000..7d34532
--- /dev/null
+++ b/arena-lexer-yyunput.patch
@@ -0,0 +1,30 @@
+--- a/libparser/lexer.l	2006-10-30 22:56:06.000000000 +0100
++++ b/libparser/lexer.l	2026-05-12 19:20:28.819746377 +0200
+@@ -13,11 +13,6 @@
+ #include "y.tab.h"
+
+ /*
+- * Parser data
+- */
+-YYSTYPE yylval;
+-
+-/*
+  * Include file stack
+  */
+ static int include_depth = 0;
+@@ -50,15 +45,6 @@
+ #define BLOCK if (in_block == 0)
+
+ /*
+- * Dirty hack to keep old flex / new gcc combo from warning
+- */
+-static void yyunput();
+-void yyunused()
+-{
+-  yyunput();
+-}
+-
+-/*
+  * define default yywrap without -lfl
+  */
+ int yywrap(void)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/arena.git/commitdiff/62e756362585f57b0997e2490b43f0af6b623f4b



More information about the pld-cvs-commit mailing list