[exim-dev] [Bug 3038] Conflicting types of tls_in caused by …

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Exim Bugzilla
Date:  
À: exim-dev
Sujet: [exim-dev] [Bug 3038] Conflicting types of tls_in caused by hctx typedef
https://bugs.exim.org/show_bug.cgi?id=3038

--- Comment #2 from Michael Tautschnig <mt@???> ---
This fails at link time, and wouldn't be detectable with regular ELF linkers.
The problem was found when using goto-cc (from the CBMC suite of tools), which
performs type-aware linking. Still posting the relevant log section:

[...]
cc -o eximon.bin em_version.o -rdynamic -ldl -pie -L/usr/X11R6/lib64 \
  util-spool_in.o util-store.o util-string.o util-queue.o util-tod.o
util-tree.o em_StripChart.o em_TextPop.o em_globals.o em_init.o em_log.o
em_main.o em_menu.o em_queue.o em_strip.o em_text.o em_xs.o -lXaw -lXmu -lXt
-lXext -lX11 -lpcre2-8 \
  -lcrypt -lm -L/usr/lib64/nsl -lnsl    -lc
reason for conflict at #this.resume_hctx: type classes differ
struct {
  hashmethod method;
  signed int hashlen;
  union u;
}
void *
../exim_monitor/em_globals.c:225:1: error: error: conflicting types for
variable 'tls_in'
old definition in module 'spool_in' file globals.h line 121
struct {
  client_conn_ctx active;
  signed int bits;
  BOOL certificate_verified;
  BOOL dane_verified;
  signed int tlsa_usage;
  uschar * cipher;
  const uschar * cipher_stdname;
  const uschar * ver;
  BOOL on_connect;
  unsigned int $pad9;
  uschar * on_connect_ports;
  void * ourcert;
  void * peercert;
  uschar * peerdn;
  uschar * sni;
  uschar * channelbinding;
  enum  ocsp;
  unsigned int $pad17;
  hctx resume_hctx;
  const uschar * resume_index;
  unsigned int resumption;
  BOOL : 1 host_resumable;
  BOOL : 1 ticket_received;
  BOOL : 1 verify_override;
  BOOL : 1 ext_master_secret;
  unsigned __CPROVER_bitvector[4] : 4 $bit_field_pad23;
  unsigned __CPROVER_bitvector[24] $pad26;
}
new definition in module 'em_globals' file ../exim_monitor/em_globals.c line
225
struct {
  client_conn_ctx active;
  signed int bits;
  BOOL certificate_verified;
  BOOL dane_verified;
  signed int tlsa_usage;
  uschar * cipher;
  const uschar * cipher_stdname;
  const uschar * ver;
  BOOL on_connect;
  unsigned int $pad9;
  uschar * on_connect_ports;
  void * ourcert;
  void * peercert;
  uschar * peerdn;
  uschar * sni;
  uschar * channelbinding;
  enum  ocsp;
  unsigned int $pad17;
  hctx resume_hctx;
  const uschar * resume_index;
  unsigned int resumption;
  BOOL : 1 host_resumable;
  BOOL : 1 ticket_received;
  BOOL : 1 verify_override;
  BOOL : 1 ext_master_secret;
  unsigned __CPROVER_bitvector[4] : 4 $bit_field_pad23;
  unsigned __CPROVER_bitvector[24] $pad26;
}
 tls_support tls_in = {
typechecking main failed
make[1]: *** [Makefile:787: eximon.bin] Error 1


--
You are receiving this mail because:
You are on the CC list for the bug.

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-dev.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-dev-unsubscribe@???
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/