[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