bugManeage - Bugs: bug #61730, cffi crashing with Python 3.10 and...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #61730: cffi crashing with Python 3.10 and OpenSSL 3.0.0

Submitter:  Mohammad Akhlaghi <makhlaghi>
Submitted:  Sun 26 Dec 2021 10:04:36 PM UTC
   
 
Category:  Software Severity:  3 - Normal
Item Group:  Crash Status:  Postponed
Privacy:  Public Assigned to:  makhlaghi
Open/Closed:  Closed

Sun 26 Dec 2021 10:39:12 PM UTC, comment #1: 

This was a mistake! It was actually a crash in Python's Cryptography package and cffi was successfully installed!

Upon updating Cryptography to its latest version and trying it out, I found out that it now also depends on 'setuptools-rust', that was crashing with another error, so I just defined bug #61731 to follow that issue there.

Mohammad Akhlaghi <makhlaghi>
Group administrator
Sun 26 Dec 2021 10:04:36 PM UTC, original submission:  

During the updating of Maneage software, I noticed that cffi (Foreign Function Interface for Python calling C code) is crashing with Python 3.10 and OpenSSL 3.0.0 with the error below

Until we find the solution to this problem, cffi (and all the packages that depend on it), are being removed (their name is commented in 'version.conf').


building '_openssl' extension
creating build/temp.linux-x86_64-3.10/build
creating build/temp.linux-x86_64-3.10/build/temp.linux-x86_64-3.10
BDIR/software/installed/bin/gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -IBDIR/software/installed/include -Wno-nullability-completeness -fPIC -IBDIR/software/installed/include/python3.10 -c build/temp.linux-x86_64-3.10/_openssl.c -o build/temp.linux-x86_64-3.10/build/temp.linux-x86_64-3.10/_openssl.o -Wconversion -Wno-error=sign-conversion
build/temp.linux-x86_64-3.10/_openssl.c:2286:7: error: 'EVP_PKEY_CTX_set_rsa_oaep_md' redeclared as different kind of symbol
 2286 | int (*EVP_PKEY_CTX_set_rsa_oaep_md)(EVP_PKEY_CTX *, EVP_MD *) = NULL;
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from BDIR/software/installed/include/openssl/x509.h:36,
                 from BDIR/software/installed/include/openssl/ct.h:29,
                 from build/temp.linux-x86_64-3.10/_openssl.c:643:
BDIR/software/installed/include/openssl/rsa.h:158:5: note: previous declaration of 'EVP_PKEY_CTX_set_rsa_oaep_md' with type 'int(EVP_PKEY_CTX *, const EVP_MD *)' {aka 'int(struct evp_pkey_ctx_st *, const struct evp_md_st *)'}
  158 | int EVP_PKEY_CTX_set_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD *md);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c:2293:7: error: 'EVP_PKEY_CTX_set0_rsa_oaep_label' redeclared as different kind of symbol
 2293 | int (*EVP_PKEY_CTX_set0_rsa_oaep_label)(EVP_PKEY_CTX *, unsigned char *,
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from BDIR/software/installed/include/openssl/x509.h:36,
                 from BDIR/software/installed/include/openssl/ct.h:29,
                 from build/temp.linux-x86_64-3.10/_openssl.c:643:
BDIR/software/installed/include/openssl/rsa.h:164:5: note: previous declaration of 'EVP_PKEY_CTX_set0_rsa_oaep_label' with type 'int(EVP_PKEY_CTX *, void *, int)' {aka 'int(struct evp_pkey_ctx_st *, void *, int)'}
  164 | int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, void *label, int llen);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function 'Cryptography_pem_password_cb':
build/temp.linux-x86_64-3.10/_openssl.c:3050:37: warning: conversion to 'size_t' {aka 'long unsigned int'} from 'int' may change the sign of the result [-Wsign-conversion]
 3050 |         memcpy(buf, st->password, st->length);
      |                                   ~~^~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_const_CRYPTO_MEM_CHECK_DISABLE':
build/temp.linux-x86_64-3.10/_openssl.c:6934:12: error: 'CRYPTO_MEM_CHECK_DISABLE' undeclared (first use in this function); did you mean '_cffi_const_CRYPTO_MEM_CHECK_DISABLE'?
 6934 |   int n = (CRYPTO_MEM_CHECK_DISABLE) <= 0;
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
      |            _cffi_const_CRYPTO_MEM_CHECK_DISABLE
build/temp.linux-x86_64-3.10/_openssl.c:6934:12: note: each undeclared identifier is reported only once for each function it appears in
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_const_CRYPTO_MEM_CHECK_ENABLE':
build/temp.linux-x86_64-3.10/_openssl.c:6941:12: error: 'CRYPTO_MEM_CHECK_ENABLE' undeclared (first use in this function); did you mean '_cffi_const_CRYPTO_MEM_CHECK_ENABLE'?
 6941 |   int n = (CRYPTO_MEM_CHECK_ENABLE) <= 0;
      |            ^~~~~~~~~~~~~~~~~~~~~~~
      |            _cffi_const_CRYPTO_MEM_CHECK_ENABLE
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_const_CRYPTO_MEM_CHECK_OFF':
build/temp.linux-x86_64-3.10/_openssl.c:6948:12: error: 'CRYPTO_MEM_CHECK_OFF' undeclared (first use in this function)
 6948 |   int n = (CRYPTO_MEM_CHECK_OFF) <= 0;
      |            ^~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_const_CRYPTO_MEM_CHECK_ON':
build/temp.linux-x86_64-3.10/_openssl.c:6955:12: error: 'CRYPTO_MEM_CHECK_ON' undeclared (first use in this function)
 6955 |   int n = (CRYPTO_MEM_CHECK_ON) <= 0;
      |            ^~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_const_EVP_R_KEYGEN_FAILURE':
build/temp.linux-x86_64-3.10/_openssl.c:7686:12: error: 'EVP_R_KEYGEN_FAILURE' undeclared (first use in this function)
 7686 |   int n = (EVP_R_KEYGEN_FAILURE) <= 0;
      |            ^~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_BIO_s_datagram':
build/temp.linux-x86_64-3.10/_openssl.c:12034:10: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
12034 |   return BIO_s_datagram();
      |          ^~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_BIO_s_datagram':
build/temp.linux-x86_64-3.10/_openssl.c:12045:12: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
12045 |   { result = BIO_s_datagram(); }
      |            ^
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_BIO_s_mem':
build/temp.linux-x86_64-3.10/_openssl.c:12060:10: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
12060 |   return BIO_s_mem();
      |          ^~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_BIO_s_mem':
build/temp.linux-x86_64-3.10/_openssl.c:12071:12: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
12071 |   { result = BIO_s_mem(); }
      |            ^
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_CRYPTO_mem_ctrl':
build/temp.linux-x86_64-3.10/_openssl.c:14906:10: warning: implicit declaration of function 'CRYPTO_mem_ctrl'; did you mean 'CRYPTO_memcmp'? [-Wimplicit-function-declaration]
14906 |   return CRYPTO_mem_ctrl(x0);
      |          ^~~~~~~~~~~~~~~
      |          CRYPTO_memcmp
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_ERR_GET_FUNC':
build/temp.linux-x86_64-3.10/_openssl.c:20543:10: warning: implicit declaration of function 'ERR_GET_FUNC'; did you mean 'ERR_GET_LIB'? [-Wimplicit-function-declaration]
20543 |   return ERR_GET_FUNC(x0);
      |          ^~~~~~~~~~~~
      |          ERR_GET_LIB
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_FIPS_mode':
build/temp.linux-x86_64-3.10/_openssl.c:24980:10: warning: implicit declaration of function 'FIPS_mode' [-Wimplicit-function-declaration]
24980 |   return FIPS_mode();
      |          ^~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_FIPS_mode_set':
build/temp.linux-x86_64-3.10/_openssl.c:25006:10: warning: implicit declaration of function 'FIPS_mode_set' [-Wimplicit-function-declaration]
25006 |   return FIPS_mode_set(x0);
      |          ^~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_OCSP_resp_get0_certs':
build/temp.linux-x86_64-3.10/_openssl.c:28094:10: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
28094 |   return OCSP_resp_get0_certs(x0);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_OCSP_resp_get0_certs':
build/temp.linux-x86_64-3.10/_openssl.c:28117:12: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
28117 |   { result = OCSP_resp_get0_certs(x0); }
      |            ^
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_SSL_CTX_add_extra_chain_cert':
build/temp.linux-x86_64-3.10/_openssl.c:34208:10: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
34208 |   return SSL_CTX_add_extra_chain_cert(x0, x1);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_SSL_CTX_add_extra_chain_cert':
build/temp.linux-x86_64-3.10/_openssl.c:34246:14: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
34246 |   { result = SSL_CTX_add_extra_chain_cert(x0, x1); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_SSL_CTX_get_mode':
build/temp.linux-x86_64-3.10/_openssl.c:34676:10: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
34676 |   return SSL_CTX_get_mode(x0);
      |          ^~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_SSL_CTX_get_mode':
build/temp.linux-x86_64-3.10/_openssl.c:34699:14: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
34699 |   { result = SSL_CTX_get_mode(x0); }
      |              ^~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_SSL_CTX_get_session_cache_mode':
build/temp.linux-x86_64-3.10/_openssl.c:34790:10: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
34790 |   return SSL_CTX_get_session_cache_mode(x0);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_SSL_CTX_get_session_cache_mode':
build/temp.linux-x86_64-3.10/_openssl.c:34813:14: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
34813 |   { result = SSL_CTX_get_session_cache_mode(x0); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_SSL_CTX_set_mode':
build/temp.linux-x86_64-3.10/_openssl.c:36449:10: warning: conversion to 'long int' from 'long unsigned int' may change the sign of the result [-Wsign-conversion]
36449 |   return SSL_CTX_set_mode(x0, x1);
      |          ^~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c:36449:10: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_SSL_CTX_set_mode':
build/temp.linux-x86_64-3.10/_openssl.c:36482:14: warning: conversion to 'long int' from 'long unsigned int' may change the sign of the result [-Wsign-conversion]
36482 |   { result = SSL_CTX_set_mode(x0, x1); }
      |              ^~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c:36482:14: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
In file included from build/temp.linux-x86_64-3.10/_openssl.c:807:
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_SSL_CTX_set_session_cache_mode':
build/temp.linux-x86_64-3.10/_openssl.c:36845:45: warning: conversion to 'long int' from 'long unsigned int' may change the sign of the result [-Wsign-conversion]
36845 |   return SSL_CTX_set_session_cache_mode(x0, x1);
      |                                             ^~
build/temp.linux-x86_64-3.10/_openssl.c:36845:10: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
36845 |   return SSL_CTX_set_session_cache_mode(x0, x1);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from build/temp.linux-x86_64-3.10/_openssl.c:807:
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_SSL_CTX_set_session_cache_mode':
build/temp.linux-x86_64-3.10/_openssl.c:36878:49: warning: conversion to 'long int' from 'long unsigned int' may change the sign of the result [-Wsign-conversion]
36878 |   { result = SSL_CTX_set_session_cache_mode(x0, x1); }
      |                                                 ^~
build/temp.linux-x86_64-3.10/_openssl.c:36878:14: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
36878 |   { result = SSL_CTX_set_session_cache_mode(x0, x1); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_SSL_CTX_set_tmp_dh':
build/temp.linux-x86_64-3.10/_openssl.c:37251:10: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
37251 |   return SSL_CTX_set_tmp_dh(x0, x1);
      |          ^~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_SSL_CTX_set_tmp_dh':
build/temp.linux-x86_64-3.10/_openssl.c:37289:14: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
37289 |   { result = SSL_CTX_set_tmp_dh(x0, x1); }
      |              ^~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_SSL_CTX_set_tmp_ecdh':
build/temp.linux-x86_64-3.10/_openssl.c:37304:10: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
37304 |   return SSL_CTX_set_tmp_ecdh(x0, x1);
      |          ^~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_SSL_CTX_set_tmp_ecdh':
build/temp.linux-x86_64-3.10/_openssl.c:37342:14: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
37342 |   { result = SSL_CTX_set_tmp_ecdh(x0, x1); }
      |              ^~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_SSL_SESSION_get_ticket_lifetime_hint':
build/temp.linux-x86_64-3.10/_openssl.c:38095:10: warning: conversion to 'long int' from 'long unsigned int' may change the sign of the result [-Wsign-conversion]
38095 |   return SSL_SESSION_get_ticket_lifetime_hint(x0);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_SSL_SESSION_get_ticket_lifetime_hint':
build/temp.linux-x86_64-3.10/_openssl.c:38118:14: warning: conversion to 'long int' from 'long unsigned int' may change the sign of the result [-Wsign-conversion]
38118 |   { result = SSL_SESSION_get_ticket_lifetime_hint(x0); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_SSL_get_mode':
build/temp.linux-x86_64-3.10/_openssl.c:39511:10: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
39511 |   return SSL_get_mode(x0);
      |          ^~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_SSL_get_mode':
build/temp.linux-x86_64-3.10/_openssl.c:39534:14: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
39534 |   { result = SSL_get_mode(x0); }
      |              ^~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_d_SSL_set_mode':
build/temp.linux-x86_64-3.10/_openssl.c:41478:10: warning: conversion to 'long int' from 'long unsigned int' may change the sign of the result [-Wsign-conversion]
41478 |   return SSL_set_mode(x0, x1);
      |          ^~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c:41478:10: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
build/temp.linux-x86_64-3.10/_openssl.c: In function '_cffi_f_SSL_set_mode':
build/temp.linux-x86_64-3.10/_openssl.c:41511:14: warning: conversion to 'long int' from 'long unsigned int' may change the sign of the result [-Wsign-conversion]
41511 |   { result = SSL_set_mode(x0, x1); }
      |              ^~~~~~~~~~~~
build/temp.linux-x86_64-3.10/_openssl.c:41511:14: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
build/temp.linux-x86_64-3.10/_openssl.c: At top level:
cc1: note: unrecognized command-line option '-Wno-nullability-completeness' may have been intended to silence earlier diagnostics
error: command 'BDIR/software/installed/bin/gcc' failed with exit code 1
make: *** [reproduce/software/make/python.mk:235: BDIR/software/installed/version-info/python/cryptography-2.6.1] Error 1


Mohammad Akhlaghi <makhlaghi>
Group administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by makhlaghi (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2021-12-26 makhlaghi Assigned toNone makhlaghi
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-caa5.
    Corresponding source code