Wireshark-bugs: [Wireshark-bugs] [Bug 12831] New: Fails to compile against Heimdal 1.5.3
Date: Tue, 06 Sep 2016 20:54:09 +0000
Bug ID 12831
Summary Fails to compile against Heimdal 1.5.3
Product Wireshark
Version 2.2.0
Hardware x86
OS All
Status UNCONFIRMED
Severity Major
Priority Low
Component Dissection engine (libwireshark)
Assignee bugzilla-admin@wireshark.org
Reporter Martin.vGagern@gmx.net

Created attachment 14886 [details]
complete Gentoo build log

Build Information:
Wireshark 2.2.0rc2 (Git Rev Unknown from unknown)

Copyright 1998-2016 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later
<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (64-bit) with Qt 5.6.1, with libpcap, with POSIX capabilities (Linux),
with libnl 3, with GLib 2.48.1, with zlib 1.2.8, without SMI, without c-ares,
without Lua, with GnuTLS 3.4.14, with Gcrypt 1.7.3, without Kerberos, without
GeoIP, with QtMultimedia, without AirPcap.

Running on Linux 4.7.1-gentoo, with locale LC_CTYPE=de_DE.utf8,
LC_NUMERIC=de_DE.utf8, LC_TIME=de_DE.utf8, LC_COLLATE=de_DE.utf8,
LC_MONETARY=de_DE.utf8, LC_MESSAGES=C, LC_PAPER=de_DE.utf8, LC_NAME=de_DE.utf8,
LC_ADDRESS=de_DE.utf8, LC_TELEPHONE=de_DE.utf8, LC_MEASUREMENT=de_DE.utf8,
LC_IDENTIFICATION=de_DE.utf8, with libpcap version 1.8.0, with GnuTLS 3.4.14,
with Gcrypt 1.7.3, with zlib 1.2.8.
AMD Phenom(tm) II X4 945 Processor

Built using gcc 5.3.0.

--
As I reported in https://bugs.gentoo.org/show_bug.cgi?id=588998, I'm having
problems compiling Wireshark 2.2.0rc2 from source on Gentoo with Heimdal
installed and Kerberos support enabled for the Wireshark build.

In file included from ./asn1/kerberos/packet-kerberos-template.c:68:0:
./asn1/kerberos/packet-kerberos-template.h:104:28: error: expected identifier
be
fore numeric constant
 #define KRB5_ENCTYPE_NULL  0
                            ^
In file included from ./asn1/kerberos/packet-kerberos-template.c:267:0:
/usr/include/krb5.h:125:28: error: ‘KRB5_ENCTYPE_DES3_CBC_MD5’ undeclared here
(
not in a function)
     ENCTYPE_DES3_CBC_MD5 = KRB5_ENCTYPE_DES3_CBC_MD5,
                            ^
/usr/include/krb5.h:126:33: error: ‘KRB5_ENCTYPE_OLD_DES3_CBC_SHA1’ undeclared
h
ere (not in a function)
     ENCTYPE_OLD_DES3_CBC_SHA1 = KRB5_ENCTYPE_OLD_DES3_CBC_SHA1,
                                 ^
⋮
/usr/include/krb5.h:140:29: error: ‘KRB5_ENCTYPE_DES_PCBC_NONE’ undeclared here 
(not in a function)
     ENCTYPE_DES_PCBC_NONE = KRB5_ENCTYPE_DES_PCBC_NONE,
                             ^
/usr/include/krb5.h:156:26: error: ‘KRB5_ENCTYPE_ARCFOUR_MD4’ undeclared here
(n
ot in a function)
     ETYPE_ARCFOUR_MD4  = KRB5_ENCTYPE_ARCFOUR_MD4,
                          ^
/usr/include/krb5.h:157:30: error: ‘KRB5_ENCTYPE_ARCFOUR_HMAC_OLD’ undeclared
here (not in a function)
     ETYPE_ARCFOUR_HMAC_OLD = KRB5_ENCTYPE_ARCFOUR_HMAC_OLD,
                              ^
/usr/include/krb5.h:158:34: error: ‘KRB5_ENCTYPE_ARCFOUR_HMAC_OLD_EXP’
undeclared here (not in a function)
     ETYPE_ARCFOUR_HMAC_OLD_EXP = KRB5_ENCTYPE_ARCFOUR_HMAC_OLD_EXP,
                                  ^
/usr/include/krb5.h:163:29: error: ‘KRB5_ENCTYPE_DIGEST_MD5_NONE’ undeclared
here (not in a function)
     ETYPE_DIGEST_MD5_NONE = KRB5_ENCTYPE_DIGEST_MD5_NONE,
                             ^
/usr/include/krb5.h:164:28: error: ‘KRB5_ENCTYPE_CRAM_MD5_NONE’ undeclared here
(not in a function)
     ETYPE_CRAM_MD5_NONE  = KRB5_ENCTYPE_CRAM_MD5_NONE
                            ^


Apparently there is a conflict here between the wireshark dissector on the one
hand, which has this in packet-kerberos.h:

/* encryption type constants */
#define KRB5_ENCTYPE_NULL        0
#define KRB5_ENCTYPE_DES_CBC_CRC    1
#define KRB5_ENCTYPE_DES_CBC_MD4    2
#define KRB5_ENCTYPE_DES_CBC_MD5    3
#define KRB5_ENCTYPE_DES_CBC_RAW    4
#define KRB5_ENCTYPE_DES3_CBC_SHA    5
⋮

And on the other hand, heimdal itself has the following in
/usr/include/x86_64-pc-linux-gnu/krb5_asn1.h:

typedef enum ENCTYPE {
  KRB5_ENCTYPE_NULL = 0,
  KRB5_ENCTYPE_DES_CBC_CRC = 1,
  KRB5_ENCTYPE_DES_CBC_MD4 = 2,
  KRB5_ENCTYPE_DES_CBC_MD5 = 3,
  KRB5_ENCTYPE_DES3_CBC_MD5 = 5,
  ⋮

Combined these give an invalid enum like this:

typedef enum ENCTYPE {
  0 = 0,
  1 = 1,
  2 = 2,
  3 = 3,
  KRB5_ENCTYPE_DES3_CBC_MD5 = 5,
  ⋮

Personally I'd say packet-kerberos-template.c shouldn't define these names, but
instead either use a different naming scheme or rely on the constants provided
in the headers.


You are receiving this mail because:
  • You are watching all bug changes.