1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-25 09:34:11 +00:00

security/cracklib: fix build with clang 15

During an exp-run for llvm 15 (see bug 265425), it turned out that
security/cracklib failed to build with clang 15:

  rules.c:346:50: warning: too few arguments in call to 'Debug'
          Debug(1, "MatchClass: unknown class %c\n", class);
          ~~~~~                                           ^
  rules.c:346:45: error: incompatible integer to pointer conversion passing 'char' to parameter of type 'char *'; take the address with & [-Wint-conversion]
          Debug(1, "MatchClass: unknown class %c\n", class);
                                                     ^~~~~
                                                     &

This is because cracklib is very old K&R source, and the Debug()
function is not defined with varargs, but an arbitrary amount of char
pointer arguments.

Since the Debug() function does nothing anyway, define it as a varargs
macro instead. This also gets rid of most of the other compilation
warnings.

PR:		268334
Approved by:	cy (maintainer)
MFH:		2022Q4
This commit is contained in:
Dimitry Andric 2022-12-12 16:09:19 +01:00
parent c7823054d4
commit 5925cd3e9c

View File

@ -0,0 +1,11 @@
--- lib/rules.c.orig 2019-02-14 01:54:41 UTC
+++ lib/rules.c
@@ -26,6 +26,8 @@ Debug(val, a, b, c, d, e, f, g)
{
fprintf(stderr, a, b, c, d, e, f, g);
}
+#elif 1
+#define Debug(n, f, ...) do {} while (0)
#else
static void
Debug(val, a, b, c, d, e, f, g)