diff --git a/src/modules/module_18200.c b/src/modules/module_18200.c index af18ee26b..83cf949f2 100644 --- a/src/modules/module_18200.c +++ b/src/modules/module_18200.c @@ -224,30 +224,32 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE if (rc_tokenizer != PARSER_OK) return (rc_tokenizer); - u8 *checksum_pos = NULL; - u8 *data_pos = NULL; + const u8 *checksum_pos = NULL; + const u8 *data_pos = NULL; int data_len = 0; if (krb5asrep->format == 1) { - checksum_pos = (u8 *) token.buf[3]; + checksum_pos = token.buf[3]; - data_pos = (u8 *) token.buf[4]; + data_pos = token.buf[4]; data_len = token.len[4]; memcpy (krb5asrep->account_info, token.buf[2], token.len[2]); } else { - checksum_pos = (u8 *) token.buf[2]; + checksum_pos = token.buf[2]; - data_pos = (u8 *) token.buf[3]; + data_pos = token.buf[3]; data_len = token.len[3]; memcpy (krb5asrep->account_info, token.buf[1], token.len[1]); } + if (checksum_pos == NULL || data_pos == NULL) return (PARSER_SALT_VALUE); + krb5asrep->checksum[0] = hex_to_u32 (checksum_pos + 0); krb5asrep->checksum[1] = hex_to_u32 (checksum_pos + 8); krb5asrep->checksum[2] = hex_to_u32 (checksum_pos + 16);