Bug#751348: qutecom: Inconsistent definition of ORTP_INET6 to cause conflicting types
Michael Tautschnig
mt at debian.org
Wed Jun 11 22:29:57 UTC 2014
Package: qutecom
Version: 2.2.1+dfsg1-5
Usertags: goto-cc
During a rebuild of all Debian packages in a clean sid chroot (using cowbuilder
and 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.
[...]
/usr/bin/g++ -fPIC -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -D_FORTIFY_SOURCE=2 -O2 -g -DNDEBUG -lpthread -Wl,--export-dynamic -lgmodule-2.0 -pthread -lglib-2.0 -lgthread-2.0 -pthread -lglib-2.0 -Wl,-z,relro -shared -Wl,-soname,libphapi.so -o libphapi.so CMakeFiles/phapi.dir/aec2.o CMakeFiles/phapi.dir/nortel.o CMakeFiles/phapi.dir/owpl_adapter.o CMakeFiles/phapi.dir/owpl_plugin.o CMakeFiles/phapi.dir/owpl_log.o CMakeFiles/phapi.dir/phapi-old.o CMakeFiles/phapi.dir/phapi.o CMakeFiles/phapi.dir/phaudiodriver.o CMakeFiles/phapi.dir/phcodec.o CMakeFiles/phapi.dir/phevents.o CMakeFiles/phapi.dir/phlog.o CMakeFiles/phapi.dir/phmbuf.o CMakeFiles/phapi.dir/phmedia-audio-file.o CMakeFiles/phapi.dir/phmedia-audio.o CMakeFiles/phapi.dir/phmedia.o CMakeFiles/phapi.dir/phrecorder.o CMakeFiles/phapi.dir/phresample.o CMakeFiles/phapi.dir/phvline.o CMakeFiles/phapi.dir/tonegen.o CMakeFiles/phapi.dir/wav.o CMakeFiles/phapi.dir/wlm.o CMakeFiles/phapi.dir/phcodec-h263.o CMakeFiles/phapi.dir/phcodec-h263plus.o CMakeFiles/phapi.dir/phcodec-h263flv1.o CMakeFiles/phapi.dir/phcodec-h264.o CMakeFiles/phapi.dir/phcodec-mpeg4.o CMakeFiles/phapi.dir/phmedia-video.o CMakeFiles/phapi.dir/phmedia-video-control.o CMakeFiles/phapi.dir/phmedia-video-bwcontrol.o CMakeFiles/phapi.dir/phcodec-avcodec-wrapper.o CMakeFiles/phapi.dir/phmedia-alsa.o CMakeFiles/phapi.dir/phmedia-oss.o -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/libosip2 -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/owbase -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/owsl -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/eXosip/transport_manager -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/sVoIP -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/eXosip -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/ortp -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/phapi/stun -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/phapi/gsm -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/libs/owutil/cutil -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/phapi-util -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/phapi/fidlib -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/phapi/speexec -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/libs/timer -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/phapi/g722 -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/phapi/g726 -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/libs/owutil/util -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/libs/pixertool -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/libs/owutil/thread -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/libs/webcam -L/srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/obj-x86_64-linux-gnu/wifo/srtp ../libosip2/libosip2.a ../owbase/libowbase.so ../owsl/libowsl.so ../eXosip/transport_manager/libtransport_manager.a ../sVoIP/libsvoip.a ../eXosip/libexosip.a ../ortp/libortp.a stun/libstun.a gsm/libgsm.a ../../libs/owutil/cutil/libowcutil.a ../phapi-util/libphapiutil.so fidlib/libfidlib.a speexec/libspeexec.a ../../libs/timer/libwtimer.a g722/libg722.a g726/libg726.a -lboost_program_options -lboost_serialization -lboost_signals -lboost_thread -lboost_system -luuid ../../libs/owutil/util/libowutil.so -lavcodec -lavutil -lswscale ../../libs/pixertool/libpixertool.a ../../libs/owutil/thread/libowthread.a ../../libs/webcam/libwebcam.so -lglib-2.0 -lgmodule-2.0 -lgthread-2.0 -lgobject-2.0 -lpthread -lrt -ldl -lsamplerate -lasound ../eXosip/transport_manager/libtransport_manager.a ../owsl/libowsl.so ../owbase/libowbase.so -lcurl ../sVoIP/libsvoip.a ../libosip2/libosip2.a ../ortp/libortp.a -lcrypto -lssl ../srtp/libsrtp.a ../../libs/pixertool/libpixertool.a -lavcodec -lavutil -lswscale ../../libs/owutil/thread/libowthread.a ../../libs/owutil/util/libowutil.so ../../libs/owutil/cutil/libowcutil.a -lboost_program_options -lboost_serialization -lboost_signals -lboost_thread -lboost_system -luuid -Wl,-rpath,/usr/lib/qutecom
error: conflicting function declarations "rtp_session_set_jitter_compensation"
old definition in module phmedia-audio file /srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/wifo/ortp/include/ortp/rtpsession.h line 230
void (struct _RtpSession *, signed int)
new definition in module jitterctl file /srv/jenkins-slave/workspace/sid-goto-cc-qutecom/qutecom-2.2.1+dfsg1/wifo/ortp/src/jitterctl.c line 127
void (struct _RtpSession *session, signed int milisec)
reason for conflict at session->rtp.rem_addr/<padding> in types listed below (struct/unsignedbv):
struct sockaddr_in {
unsigned short int sin_family;
unsigned short int sin_port;
struct in_addr sin_addr;
unsigned char [8l] sin_zero;
}
unsigned int
wifo/phapi/CMakeFiles/phapi.dir/build.make:921: recipe for target 'wifo/phapi/libphapi.so' failed
make[3]: *** [wifo/phapi/libphapi.so] Error 1
The difference here lies in the type of the rem_addr member within struct
_RtpStream, to be reviewed here, which will cause additional padding to be
added:
http://sources.debian.net/src/qutecom/2.2.1+dfsg1-5/wifo/ortp/include/ortp/rtpsession.h?hl=90#L90
Note that this will affect the offsets of various further members, making the
two types inconsistent in several ways. It is not clear whether there actually
*are* such accesses as I've only done a very cursory review, but certainly there
is risk.
The root cause of the problem is that -DORTP_INET6 is not set on the compiler
command line in all cases.
Best,
Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 859 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-voip-maintainers/attachments/20140611/233135be/attachment.sig>
More information about the Pkg-voip-maintainers
mailing list