Bug#750079: kamailio: Conflicting declarations of function destroy_rpcs

Michael Tautschnig mt at debian.org
Sun Jun 1 10:45:46 UTC 2014


Package: kamailio
Version: 4.1.3-2
Severity: wishlist
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.

[...]
gcc -m64 -Wl,-O2 -Wl,-E   -Wl,-z,relro -Wl,--export-dynamic md5.o dns_cache.o rpc_lookup.o core_cmd.o basex.o rvalue.o io_wait.o tsend.o socket_info.o counters.o select_core.o tcp_stats.o lvalue.o id.o dset.o route_struct.o data_lump_rpl.o flags.o udp_server.o ut.o atomic_ops.o timer.o pt.o stun.o tcp_options.o tcp_main.o sip_msg_clone.o cfg_parser.o pass_fd.o sock_ut.o raw_listener.o crc.o switch.o forward.o nonsip_hooks.o qvalue.o shm_init.o main.o sr_module.o bit_count.o stats.o bit_scan.o resolve.o msg_translator.o dst_blacklist.o events.o local_timer.o action.o xavp.o receive.o proxy.o ver.o select_buf.o dprint.o select.o lock_ops.o ip_addr.o pv_core.o usr_avp.o hash_func.o signals.o cfg_core.o re.o data_lump.o error.o tls_hooks.o pvapi.o sctp_core.o timer_proc.o endianness.o md5utils.o raw_sock.o daemonize.o sr_compat.o mod_fix.o str_list.o route.o dns_func.o script_cb.o ppcfg.o modparam.o tcp_read.o mem/dl_malloc.o mem/sf_malloc.o mem/shm_mem.o mem/f_malloc.o mem/q_malloc.o mem/ll_malloc.o mem/memtest.o mem/mem.o parser/parse_identity.o parser/parse_uri.o parser/parse_disposition.o parser/parse_fline.o parser/parse_from.o parser/parse_cseq.o parser/parse_sipifmatch.o parser/parse_nameaddr.o parser/parse_via.o parser/parse_body.o parser/parse_expires.o parser/parse_allow.o parser/parse_ppi_pai.o parser/parse_identityinfo.o parser/parse_supported.o parser/parse_event.o parser/parse_param.o parser/parse_rpid.o parser/parser_f.o parser/parse_date.o parser/parse_rr.o parser/parse_require.o parser/parse_content.o parser/parse_addr_spec.o parser/parse_hname2.o parser/parse_retry_after.o parser/hf.o parser/parse_hostport.o parser/msg_parser.o parser/parse_subscription_state.o parser/parse_diversion.o parser/parse_methods.o parser/parse_option_tags.o parser/parse_to.o parser/parse_refer_to.o parser/digest/param_parser.o parser/digest/digest_parser.o parser/digest/digest.o parser/contact/contact.o parser/contact/parse_contact.o parser/sdp/sdp.o parser/sdp/sdp_helpr_funcs.o rand/fastrand.o rand/isaac/rand.o cfg/cfg_struct.o cfg/cfg_select.o cfg/cfg_ctx.o cfg/cfg.o cfg/cfg_script.o lex.yy.o cfg.tab.o  -ldl -lresolv   -o kamailio

error: conflicting function declarations "destroy_rpcs"
old definition in module rpc_lookup file rpc_lookup.c line 68
void (void)
new definition in module main file rpc_lookup.h line 36
signed int (void)
Makefile.rules:205: recipe for target 'kamailio' failed
make[1]: *** [kamailio] Error 64
make[1]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-kamailio/kamailio-4.1.3'
debian/rules:124: recipe for target 'build-stamp' failed
make: *** [build-stamp] Error 2

This conflict is really just an error in the declaration here:

http://sources.debian.net/src/kamailio/4.1.3-2/rpc_lookup.h?hl=36#L36

This promises a return value, which doesn't exist:

http://sources.debian.net/src/kamailio/4.1.3-2/rpc_lookup.c?hl=68#L68

Fixing the above declaration will ensure that no one inadvertently uses the
return value, which would result in undefined behaviour.

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/20140601/dbf16196/attachment.sig>


More information about the Pkg-voip-maintainers mailing list