git: 5925cd3e9c3c - main - security/cracklib: fix build with clang 15
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 12 Dec 2022 15:32:25 UTC
The branch main has been updated by dim (src committer):
URL: https://cgit.FreeBSD.org/ports/commit/?id=5925cd3e9c3cea926aee6c78aaa1f708665dfa8d
commit 5925cd3e9c3cea926aee6c78aaa1f708665dfa8d
Author: Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2022-12-12 15:09:19 +0000
Commit: Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2022-12-12 15:31:26 +0000
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
---
security/cracklib/files/patch-lib_rules.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/security/cracklib/files/patch-lib_rules.c b/security/cracklib/files/patch-lib_rules.c
new file mode 100644
index 000000000000..db39252161ad
--- /dev/null
+++ b/security/cracklib/files/patch-lib_rules.c
@@ -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)