fixed integer overflow in zigbee timestamp conversion

Change-Id: Ibc9e0a9285692ff95d28faf272c25d0e452f359c
Reviewed-on: https://code.wireshark.org/review/22094
Reviewed-by: Kenneth Soerensen <knnthsrnsn@gmail.com>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Martin Boye Petersen 2017-06-12 13:35:52 +02:00 committed by Anders Broman
parent 42a27355ee
commit 256358c0e8
1 changed files with 5 additions and 5 deletions

View File

@ -816,7 +816,7 @@ dissect_zcl_msg_cancel_all(tvbuff_t *tvb, proto_tree *tree, guint *offset)
nstime_t impl_time;
/* Retrieve "Confirmation Time" field */
impl_time.secs = tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
impl_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
impl_time.nsecs = 0;
proto_tree_add_time(tree, hf_zbee_zcl_msg_implementation_time, tvb, *offset, 4, &impl_time);
*offset += 4;
@ -836,7 +836,7 @@ dissect_zcl_msg_get_cancel(tvbuff_t *tvb, proto_tree *tree, guint *offset)
nstime_t impl_time;
/* Earliest Implementation Time */
impl_time.secs = tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
impl_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
impl_time.nsecs = 0;
proto_tree_add_time(tree, hf_zbee_zcl_msg_earliest_time, tvb, *offset, 4, &impl_time);
*offset += 4;
@ -863,7 +863,7 @@ dissect_zcl_msg_confirm(tvbuff_t *tvb, proto_tree *tree, guint *offset)
*offset += 4;
/* Retrieve "Confirmation Time" field */
confirm_time.secs = tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
confirm_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
confirm_time.nsecs = 0;
proto_tree_add_time(tree, hf_zbee_zcl_msg_confirm_time, tvb, *offset, 4, &confirm_time);
*offset += 4;
@ -915,8 +915,8 @@ decode_zcl_msg_start_time(gchar *s, guint32 value)
g_snprintf(s, ITEM_LABEL_LENGTH, "Now");
else {
gchar *start_time;
value += ZBEE_ZCL_NSTIME_UTC_OFFSET;
start_time = abs_time_secs_to_str (NULL, value, ABSOLUTE_TIME_LOCAL, TRUE);
time_t time = (time_t)value + ZBEE_ZCL_NSTIME_UTC_OFFSET;
start_time = abs_time_secs_to_str (NULL, time, ABSOLUTE_TIME_LOCAL, TRUE);
g_snprintf(s, ITEM_LABEL_LENGTH, "%s", start_time);
wmem_free(NULL, start_time);
}