libtelnet: Make encryption decls compatible with C23.
Collin Funk <[email protected]> Thu, 9 May 2024 21:21:11 -0700
| Newsgroups | gmane.comp.gnu.inetutils.bugs |
|---|---|
| Message-ID | <[email protected]> |
I've applied the attached patch to fix the following error building
libtelnet. I think the only ones remaining are in telnet/*. Once I fix
that maybe these are good for an existing CI job?
$ ./configure CC="gcc-14.1" CFLAGS="-std=c23 -Wstrict-prototypes" --enable-authentication --enable-encryption --with-krb5
encrypt.c:208:40: error: initialization of 'Encryptions * (*)(void)' from incompatible pointer type 'Encryptions * (*)(int)' [-Wincompatible-pointer-types]
208 | {{0}, 0, DIR_ENCRYPT, &encrypt_mode, findencryption},
| ^~~~~~~~~~~~~~
encrypt.c:208:40: note: (near initialization for 'ki[0].getcrypt')
encrypt.c:209:40: error: initialization of 'Encryptions * (*)(void)' from incompatible pointer type 'Encryptions * (*)(int)' [-Wincompatible-pointer-types]
209 | {{0}, 0, DIR_DECRYPT, &decrypt_mode, finddecryption},
| ^~~~~~~~~~~~~~
encrypt.c:209:40: note: (near initialization for 'ki[1].getcrypt')
encrypt.c: In function 'encrypt_keyid':
encrypt.c:777:9: error: too many arguments to function 'kp->getcrypt'
777 | ep = (*kp->getcrypt) (*kp->modep);
| ~^~~~~~~~~~~~~~
Collin
0001-libtelnet-Make-encryption-decls-compatible-with-C23.patch
(text/x-patch, 1.2 KB)
From 25816697e6c79ae0e009b4762d8f325dfad6e99e Mon Sep 17 00:00:00 2001 From: Collin Funk <[email protected]> Date: Thu, 9 May 2024 21:10:57 -0700 Subject: [PATCH] libtelnet: Make encryption decls compatible with C23. * libtelnet/enc-proto.h (findencryption, finddecryption): Add prototypes. * libtelnet/encrypt.c (struct key_info): Add the parameter type. --- libtelnet/enc-proto.h | 2 ++ libtelnet/encrypt.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libtelnet/enc-proto.h b/libtelnet/enc-proto.h index effdf828..2f8828a5 100644 --- a/libtelnet/enc-proto.h +++ b/libtelnet/enc-proto.h @@ -66,6 +66,8 @@ */ #ifdef ENCRYPTION +Encryptions *findencryption (int); +Encryptions *finddecryption (int); int EncryptStart (char *); int EncryptStartInput (void); int EncryptStartOutput (void); diff --git a/libtelnet/encrypt.c b/libtelnet/encrypt.c index 876208b8..7c95e9c1 100644 --- a/libtelnet/encrypt.c +++ b/libtelnet/encrypt.c @@ -203,7 +203,7 @@ static struct key_info int keylen; int dir; int *modep; - Encryptions *(*getcrypt) (); + Encryptions *(*getcrypt) (int); } ki[2] = { {{0}, 0, DIR_ENCRYPT, &encrypt_mode, findencryption}, {{0}, 0, DIR_DECRYPT, &decrypt_mode, finddecryption}, -- 2.45.0