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
From 25816697e6c79ae0e009b4762d8f325dfad6e99e Mon Sep 17 00:00:00 2001
From: Collin Funk <collin.fu...@gmail.com>
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

  • libtelnet: ... Collin Funk
    • Re: li... Simon Josefsson via Bug reports for the GNU Internet utilities
      • Re... Collin Funk
        • ... Simon Josefsson via Bug reports for the GNU Internet utilities
          • ... Collin Funk

Reply via email to