From 43411b9165ded5616fac674c80749ceac2c9dfc9 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 6 Jun 2025 10:09:21 +0200 Subject: [PATCH] Trying to fix build with GNUTLS --- cups/jwt.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/cups/jwt.c b/cups/jwt.c index 6435cb1616..f83446ced3 100644 --- a/cups/jwt.c +++ b/cups/jwt.c @@ -517,19 +517,27 @@ cupsJWTHasValidSignature( { gnutls_datum_t r, s; // Signature coordinates - text_datum.data = (unsigned char *)text; - text_datum.size = (unsigned)text_len; + text_datum.data = (unsigned char *)text; + text_datum.size = (unsigned)text_len; - r.data = jwt->signature; - r.size = (unsigned)jwt->sigsize / 2; + r.data = jwt->signature; + r.size = (unsigned)jwt->sigsize / 2; s.data = jwt->signature + jwt->sigsize / 2; - s.size = (unsigned)jwt->sigsize / 2; + s.size = (unsigned)jwt->sigsize / 2; gnutls_encode_rs_value(&sig_datum, &r, &s); - ret = !gnutls_pubkey_verify_data2(key, algs[jwt->sigalg - CUPS_JWA_RS256], 0, &text_datum, &sig_datum); + ret = !gnutls_pubkey_verify_data2(key, algs[jwt->sigalg - CUPS_JWA_RS256], 0, &text_datum, &sig_datum); + + gnutls_pubkey_deinit(key); + + if (!ret) + { + free(text); + break; + } + gnutls_free(sig_datum.data); - gnutls_pubkey_deinit(key); } #endif // HAVE_OPENSSL