Index | Thread | Search

From:
Theo Buehler <tb@theobuehler.org>
Subject:
Re: [llvm22] Breakage 2026-05-28
To:
Rafael Sadowski <rafael@sizeofvoid.org>
Cc:
ports@openbsd.org
Date:
Sat, 30 May 2026 12:46:06 +0200

Download raw body.

Thread
> +++ b/x11/rdesktop/Makefile
> +CONFIGURE_ENV+=		CFLAGS="-Wno-incompatible-pointer-types"

This should be the absolutely last resort and needs an explanation why
it's necessary and harmless to do so.

It's often an actual bug that is being papered over by doing this.
I committed this instead:

rdesktop: fix build with llvm22

Incompatible pointers passed to rdssl_rkey_get_exp_mod:
https://github.com/rdesktop/rdesktop/issues/356
https://github.com/rdesktop/rdesktop/pull/357

Index: patches/patch-ssl_c
===================================================================
RCS file: /cvs/ports/x11/rdesktop/patches/patch-ssl_c,v
diff -u -p -r1.1 patch-ssl_c
--- patches/patch-ssl_c	22 May 2026 15:19:48 -0000	1.1
+++ patches/patch-ssl_c	30 May 2026 10:38:51 -0000
@@ -1,5 +1,9 @@
 Fix with nettle >=4
 
+rdssl_rkey_get_exp_mod hunk: segfault (fixes build with llvm22)
+https://github.com/rdesktop/rdesktop/issues/356
+https://github.com/rdesktop/rdesktop/pull/357
+
 Index: ssl.c
 --- ssl.c.orig
 +++ ssl.c
@@ -35,6 +39,19 @@ Index: ssl.c
  }
  
  void
+@@ -307,10 +316,10 @@ rdssl_rkey_get_exp_mod(RDSSL_RKEY * rkey, uint8 * expo
+ {
+ 	size_t outlen;
+ 
+-	outlen = (mpz_sizeinbase(modulus, 2) + 7) / 8;
++	outlen = (mpz_sizeinbase(rkey->n, 2) + 7) / 8;
+ 	if (outlen > max_mod_len)
+ 		return 1;
+-	outlen = (mpz_sizeinbase(exponent, 2) + 7) / 8;
++	outlen = (mpz_sizeinbase(rkey->e, 2) + 7) / 8;
+ 	if (outlen > max_exp_len)
+ 		return 1;
+ 
 @@ -360,5 +369,9 @@ rdssl_hmac_md5(const void *key, int key_len, const uns
  
  	hmac_md5_set_key(&ctx, key_len, key);