summaryrefslogtreecommitdiff
path: root/wiretap
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2015-05-12 10:06:15 -0700
committerGuy Harris <guy@alum.mit.edu>2015-05-12 17:10:25 +0000
commit299e2067b8a468b4f5d721f46f8bb620eab8b4ec (patch)
tree7ebf52a11749193a97b0a51dd3674a53e81f6182 /wiretap
parent09eda88586b0056b80d8ef94ace351a21b38bd80 (diff)
downloadwireshark-299e2067b8a468b4f5d721f46f8bb620eab8b4ec.tar.gz
Backport some parts of I5573c6bdca856a304877d9bef643f8c0fa93cdaf.
Backport the parts of commit 56a09d24dcdcaddae1cb67a18bbc2fd588c427ed Author: Michal Labedzki <michal.labedzki@tieto.com> Date: Wed Jul 23 12:26:05 2014 +0200 Try to fix some buildbot warnings Most interesting are: warning: cannot optimize loop, the loop counter may overflow [-Wunsafe-loop-optimizations] warning: ISO C forbids zero-size array [-Wpedantic] warning: ISO C90 doesn't support unnamed structs/unions [-Wpedantic] warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual warning: initializer element is not computable at load time [enabled by default] Change-Id: I5573c6bdca856a304877d9bef643f8c0fa93cdaf Reviewed-on: https://code.wireshark.org/review/3174 Petri-Dish: Michal Labedzki <michal.labedzki@tieto.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com> relevant to this version of wiretap/logcat.c. They fix "ISO C forbids zero-size array"; not all compilers we support allow zero-size arrays. They also make the code a bit more like the version on the trunk. Change-Id: I6524a8c05c1d945312ec1db7c305422f1021ef2c Reviewed-on: https://code.wireshark.org/review/8431 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'wiretap')
-rw-r--r--wiretap/logcat.c31
1 files changed, 19 insertions, 12 deletions
diff --git a/wiretap/logcat.c b/wiretap/logcat.c
index 51cb8c995f..a1f1173944 100644
--- a/wiretap/logcat.c
+++ b/wiretap/logcat.c
@@ -57,7 +57,7 @@ struct logger_entry {
gint32 tid; /* generating process's tid */
gint32 sec; /* seconds since Epoch */
gint32 nsec; /* nanoseconds */
- char msg[0]; /* the entry's payload */
+/* char msg[0]; *//* the entry's payload */
};
struct logger_entry_v2 {
@@ -71,8 +71,8 @@ struct logger_entry_v2 {
/* v1: not present */
guint32 euid; /* v2: effective UID of logger */
guint32 lid; /* v3: log id of the payload */
- };
- char msg[0]; /* the entry's payload */
+ } id;
+/* char msg[0]; *//* the entry's payload */
};
/* Returns '?' for invalid priorities */
@@ -142,7 +142,9 @@ static gint detect_version(wtap *wth, int *err, gchar **err_info)
struct logger_entry_v2 *log_entry_v2;
guint8 *buffer;
guint16 tmp;
- guint8 *msg_payload, *msg_part, *msg_end;
+ guint8 *msg_payload;
+ guint8 *msg_part;
+ guint8 *msg_end;
guint16 msg_len;
/* 16-bit payload length */
@@ -182,11 +184,11 @@ static gint detect_version(wtap *wth, int *err, gchar **err_info)
* version is in use. First assume the smallest msg. */
for (version = 1; version <= 2; ++version) {
if (version == 1) {
- msg_payload = log_entry->msg;
+ msg_payload = (guint8 *) (log_entry + 1);
entry_len = sizeof(*log_entry) + payload_length;
} else if (version == 2) {
/* v2 is 4 bytes longer */
- msg_payload = log_entry_v2->msg;
+ msg_payload = (guint8 *) (log_entry_v2 + 1);
entry_len = sizeof(*log_entry_v2) + payload_length;
if (hdr_size != sizeof(*log_entry_v2))
continue;
@@ -414,6 +416,7 @@ static gboolean logcat_dump_text(wtap_dumper *wdh,
gint32 tid;
gint32 seconds;
gint32 milliseconds;
+ const guint8 *msg_payload = NULL;
const gchar *msg_begin;
gint msg_pre_skip;
gchar *log;
@@ -436,15 +439,19 @@ static gboolean logcat_dump_text(wtap_dumper *wdh,
/* msg: <prio:1><tag:N>\0<msg:N>\0 with N >= 0, last \0 can be missing */
if (pseudo_header->logcat.version == 1) {
- priority = get_priority(log_entry->msg[0]);
- tag = log_entry->msg + 1;
+ msg_payload = (const guint8 *) (log_entry + 1);
+
+ priority = get_priority(msg_payload[0]);
+ tag = msg_payload + 1;
msg_pre_skip = 1 + (gint) strlen(tag) + 1;
- msg_begin = log_entry->msg + msg_pre_skip;
+ msg_begin = msg_payload + msg_pre_skip;
} else if (pseudo_header->logcat.version == 2) {
- priority = get_priority(log_entry_v2->msg[0]);
- tag = log_entry_v2->msg + 1;
+ msg_payload = (const guint8 *) (log_entry_v2 + 1);
+
+ priority = get_priority(msg_payload[0]);
+ tag = msg_payload + 1;
msg_pre_skip = 1 + (gint) strlen(tag) + 1;
- msg_begin = log_entry_v2->msg + msg_pre_skip;
+ msg_begin = msg_payload + msg_pre_skip;
} else {
*err = WTAP_ERR_UNSUPPORTED_ENCAP;
return FALSE;