From e0c2a452e21f04eeff7bfb333abfd3462c52875e Mon Sep 17 00:00:00 2001 From: shuegr-personal <32416235+shuegr-personal@users.noreply.github.com> Date: Wed, 15 Jan 2020 21:50:15 -0800 Subject: [PATCH] Fix [27]: calls to decode_context_enumerated() pass &uint32_t (#29) --- src/bacnet/access_rule.c | 8 ++++++-- src/bacnet/authentication_factor.c | 4 +++- src/bacnet/authentication_factor_format.c | 4 +++- src/bacnet/credential_authentication_factor.c | 4 +++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/bacnet/access_rule.c b/src/bacnet/access_rule.c index b0f06efe..4202571b 100644 --- a/src/bacnet/access_rule.c +++ b/src/bacnet/access_rule.c @@ -88,14 +88,17 @@ int bacapp_decode_access_rule(uint8_t *apdu, BACNET_ACCESS_RULE *rule) { int len; int apdu_len = 0; + uint32_t time_range_specifier = rule->time_range_specifier; + uint32_t location_specifier = rule->location_specifier; if (decode_is_context_tag(&apdu[apdu_len], 0)) { len = decode_context_enumerated( - &apdu[apdu_len], 0, &rule->time_range_specifier); + &apdu[apdu_len], 0, &time_range_specifier); if (len < 0) { return -1; } else { apdu_len += len; + rule->time_range_specifier = time_range_specifier; } } else { return -1; @@ -117,11 +120,12 @@ int bacapp_decode_access_rule(uint8_t *apdu, BACNET_ACCESS_RULE *rule) if (decode_is_context_tag(&apdu[apdu_len], 2)) { len = decode_context_enumerated( - &apdu[apdu_len], 2, &rule->location_specifier); + &apdu[apdu_len], 2, &location_specifier); if (len < 0) { return -1; } else { apdu_len += len; + rule->location_specifier = location_specifier; } } else { return -1; diff --git a/src/bacnet/authentication_factor.c b/src/bacnet/authentication_factor.c index 81ecb7ff..d79f38eb 100644 --- a/src/bacnet/authentication_factor.c +++ b/src/bacnet/authentication_factor.c @@ -79,13 +79,15 @@ int bacapp_decode_authentication_factor( { int len; int apdu_len = 0; + uint32_t format_type = af->format_type; if (decode_is_context_tag(&apdu[apdu_len], 0)) { - len = decode_context_enumerated(&apdu[apdu_len], 0, &af->format_type); + len = decode_context_enumerated(&apdu[apdu_len], 0, &format_type); if (len < 0) { return -1; } else { apdu_len += len; + af->format_type = format_type; } } else { return -1; diff --git a/src/bacnet/authentication_factor_format.c b/src/bacnet/authentication_factor_format.c index 0c3ea724..7c0635d3 100644 --- a/src/bacnet/authentication_factor_format.c +++ b/src/bacnet/authentication_factor_format.c @@ -80,13 +80,15 @@ int bacapp_decode_authentication_factor_format( { int len; int apdu_len = 0; + uint32_t format_type = aff->format_type; if (decode_is_context_tag(&apdu[apdu_len], 0)) { - len = decode_context_enumerated(&apdu[apdu_len], 0, &aff->format_type); + len = decode_context_enumerated(&apdu[apdu_len], 0, &format_type); if (len < 0) { return -1; } else { apdu_len += len; + aff->format_type = format_type; } } else { return -1; diff --git a/src/bacnet/credential_authentication_factor.c b/src/bacnet/credential_authentication_factor.c index baae8150..8359fcac 100644 --- a/src/bacnet/credential_authentication_factor.c +++ b/src/bacnet/credential_authentication_factor.c @@ -73,13 +73,15 @@ int bacapp_decode_credential_authentication_factor( { int len; int apdu_len = 0; + uint32_t disable = caf->disable; if (decode_is_context_tag(&apdu[apdu_len], 0)) { - len = decode_context_enumerated(&apdu[apdu_len], 0, &caf->disable); + len = decode_context_enumerated(&apdu[apdu_len], 0, &disable); if (len < 0) { return -1; } else { apdu_len += len; + caf->disable = disable; } } else { return -1;