Add printf-format annotations, fix garbage
authorPeter Wu <peter@lekensteyn.nl>
Sun, 6 Jul 2014 13:34:38 +0000 (15:34 +0200)
committerEvan Huus <eapache@gmail.com>
Sun, 6 Jul 2014 23:00:40 +0000 (23:00 +0000)
commitf2b4daf4005d60eef7e34e2e6ebf4fe487d3c255
tree1fac15d7bcbc381c5e0a3a6602e7edd20e574e39
parentec6a22dc3ba8e2d438b34d892d6a40e1be2a28f2
Add printf-format annotations, fix garbage

The WRETH dissector showed up some garbage in the column display. Upon
further inspection, it turns out that the format string had a trailing
percent sign which caused (unsigned)-1 to be returned by
g_printf_string_upper_bound (in emem_strdup_vprintf). Then ep_alloc is
called with (unsigned)-1 + 1 = 0 memory, no wonder that garbage shows
up. ASAN could not even catch this error because EP is in charge of
this.

So, start adding G_GNUC_PRINTF annotations in each header that uses
the "fmt" or "format" paramters (grepped + awk). This revealed some
other errors. The NCP2222 dissector was missing a format string (not
a security vuln though).

Many dissectors used val_to_str with a constant (but empty) string,
these have been replaced by val_to_str_const. ASN.1 dissectors
were regenerated for this.

Minor: the mate plugin used "%X" instead of "%p" for a pointer type.

The ncp2222 dissector and wimax plugin gained modelines.

Change-Id: I7f3f6a3136116f9b251719830a39a7b21646f622
Reviewed-on: https://code.wireshark.org/review/2881
Reviewed-by: Evan Huus <eapache@gmail.com>
28 files changed:
asn1/h450-ros/h450-ros.cnf
asn1/q932-ros/q932-ros.cnf
asn1/x509if/x509if.cnf
echld/echld-int.h
echld/echld.h
epan/dfilter/dfilter-int.h
epan/dfilter/grammar.lemon
epan/dfilter/semcheck.c
epan/diam_dict.l
epan/dissectors/packet-dis.c
epan/dissectors/packet-h450-ros.c
epan/dissectors/packet-lisp.c
epan/dissectors/packet-ncp2222.inc
epan/dissectors/packet-q932-ros.c
epan/dissectors/packet-wreth.c
epan/dissectors/packet-x509if.c
epan/dissectors/packet-zbee-aps.c
epan/emem.h
epan/except.h
epan/proto.h
epan/ptvcursor.h
epan/to_str.h
epan/value_string.h
plugins/mate/mate_runtime.c
plugins/mate/mate_util.h
plugins/wimax/msg_arq.c
plugins/wimaxasncp/wimaxasncp_dict.l
wsutil/unicode-utils.h