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 [email protected]
Reporter [email protected]

Created attachment 14886 [details]
complete Gentoo build log

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

Copyright 1998-2016 Gerald Combs <[email protected]> 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.