Unverified Commit 04055b3f authored by Marcin Serwin's avatar Marcin Serwin
Browse files

tilem: add gcc14 patch

The patch fixes a bug with the allocation of a new Tilem macro action:
instead of allocating the macro action itself, the code allocates a
string for holding the macro value. This happens to work if the length
of `value` is greater than the size of TilemMacroAtom since pointers
returned from malloc can be used for anything.
parent dc8152a2
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
diff --git a/gui/macro.c b/gui/macro.c
index ae8db8b..226d48f 100644
--- a/gui/macro.c
+++ b/gui/macro.c
@@ -86,7 +86,7 @@ void tilem_macro_add_action(TilemMacro* macro, int type, char * value) {
 	macro->actions = tilem_macro_actions_new(macro, n + 1);
 
 	/* Then we need to save the action */	
-	macro->actions[n] =  g_new(char, strlen(value)); /* FIXME : gcc says : "assignment from incompatible pointer type" ??? */
+	macro->actions[n] =  g_new(TilemMacroAtom, 1); /* FIXME : gcc says : "assignment from incompatible pointer type" ??? */
 	macro->actions[n]->value = g_strdup(value);
 	macro->actions[n]->type = type;
 	macro->n++;
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
    libticables2
    libticalcs2
  ];
  patches = [ ./gcc14-fix.patch ];
  env.NIX_CFLAGS_COMPILE = toString [ "-lm" ];
  meta = with lib; {
    homepage = "http://lpg.ticalc.org/prj_tilem/";