Index | Thread | Search

From:
Claudio Jeker <cjeker@diehard.n-r-g.com>
Subject:
little house of cyrus-sasl2 horrors
To:
Antoine Jacoutot <ajacoutot@openbsd.org>
Cc:
ports@openbsd.org
Date:
Mon, 17 Nov 2025 15:17:44 +0100

Download raw body.

Thread
cyrus-sasl2 trips over C23 because its md5 code still defaults to no
prototypes because this feature is way to modern for such a critical
piece of software.

In C23 a prototype of static void MD5_memcpy () is equal to
static void MD5_memcpy (void) which is not what we want.

-- 
:wq Claudio

Index: patches/patch-include_makemd5_c
===================================================================
RCS file: patches/patch-include_makemd5_c
diff -N patches/patch-include_makemd5_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-include_makemd5_c	17 Nov 2025 14:08:08 -0000
@@ -0,0 +1,19 @@
+Enable PROTOTYPES by default, even base-gcc handles this modern feature.
+
+Index: include/makemd5.c
+--- include/makemd5.c.orig
++++ include/makemd5.c
+@@ -155,11 +155,11 @@ static int print_pre(FILE *f)
+ 	  "\n"
+ 	  "/* PROTOTYPES should be set to one if and only if the compiler supports\n"
+ 	  "  function argument prototyping.\n"
+-	  "The following makes PROTOTYPES default to 0 if it has not already\n"
++	  "The following makes PROTOTYPES default to 1 if it has not already\n"
+ 	  "  been defined with C compiler flags.\n"
+ 	  " */\n"
+ 	  "#ifndef PROTOTYPES\n"
+-	  "#define PROTOTYPES 0\n"
++	  "#define PROTOTYPES 1\n"
+ 	  "#endif\n"
+ 	  "\n"
+ 	  "/* POINTER defines a generic pointer type */\n"