[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#749670: opencryptoki: Duplicate and conflicting definition of XProcLock



Package: opencryptoki
Version: 2.3.1+dfsg-3
Usertags: goto-cc

During a rebuild of all packages in a clean sid chroot (and cowbuilder+pbuilder)
the build failed with the following error. Please note that we use our research
compiler tool-chain (using tools from the cbmc package), which permits extended
reporting on type inconsistencies at link time.

[...]
libtool: link: gcc -shared  -fPIC -DPIC  .libs/opencryptoki_stdll_libpkcs11_sw_la-asn1.o .libs/opencryptoki_stdll_libpkcs11_sw_la-cert.o .libs/opencryptoki_stdll_libpkcs11_sw_la-hwf_obj.o .libs/opencryptoki_stdll_libpkcs11_sw_la-dp_obj.o .libs/opencryptoki_stdll_libpkcs11_sw_la-data_obj.o .libs/opencryptoki_stdll_libpkcs11_sw_la-decr_mgr.o .libs/opencryptoki_stdll_libpkcs11_sw_la-dig_mgr.o .libs/opencryptoki_stdll_libpkcs11_sw_la-encr_mgr.o .libs/opencryptoki_stdll_libpkcs11_sw_la-globals.o .libs/opencryptoki_stdll_libpkcs11_sw_la-loadsave.o .libs/opencryptoki_stdll_libpkcs11_sw_la-key.o .libs/opencryptoki_stdll_libpkcs11_sw_la-key_mgr.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_aes.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_des.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_des3.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_dh.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_md5.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_md2.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_rng.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_rsa.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_sha.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_ssl3.o .libs/opencryptoki_stdll_libpkcs11_sw_la-new_host.o .libs/opencryptoki_stdll_libpkcs11_sw_la-obj_mgr.o .libs/opencryptoki_stdll_libpkcs11_sw_la-object.o .libs/opencryptoki_stdll_libpkcs11_sw_la-sess_mgr.o .libs/opencryptoki_stdll_libpkcs11_sw_la-sign_mgr.o .libs/opencryptoki_stdll_libpkcs11_sw_la-template.o .libs/opencryptoki_stdll_libpkcs11_sw_la-utility.o .libs/opencryptoki_stdll_libpkcs11_sw_la-verify_mgr.o .libs/opencryptoki_stdll_libpkcs11_sw_la-log.o .libs/opencryptoki_stdll_libpkcs11_sw_la-mech_list.o .libs/opencryptoki_stdll_libpkcs11_sw_la-soft_specific.o   -lc -lpthread -lcrypto  -O2 -Wl,-Bsymbolic   -Wl,-soname -Wl,libpkcs11_sw.so.0 -o opencryptoki/stdll/.libs/libpkcs11_sw.so.0.0.0

error: conflicting function declarations "XProcLock"
old definition in module loadsave file ../common/../api/apiproto.h line 320
signed int (void *)
new definition in module utility file ../common/utility.c line 767
unsigned long int (void *xproc)
Makefile:500: recipe for target 'opencryptoki/stdll/libpkcs11_sw.la' failed
make[5]: *** [opencryptoki/stdll/libpkcs11_sw.la] Error 64
make[5]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-opencryptoki/opencryptoki-2.3.1+dfsg/usr/lib/pkcs11/soft_stdll'
Makefile:361: recipe for target 'all-recursive' failed
make[4]: *** [all-recursive] Error 1

Consider the following two definitions of XProcLock:

http://sources.debian.net/src/opencryptoki/2.3.1+dfsg-3/usr/lib/pkcs11/api/apiutil.c?hl=435#L435
http://sources.debian.net/src/opencryptoki/2.3.1+dfsg-3/usr/lib/pkcs11/common/utility.c?hl=767#L767

It seems the linker is at liberty to choose either of them - but the result will
be undefined behaviour if the variant from utility.c is picked as the return
value will in parts be indeterminate for any platform with sizeof(unsigned
long)>sizeof(int).

Best,
Michael

Attachment: pgpxSPAUblvHP.pgp
Description: PGP signature


Reply to: