In asn1_find_tag(), tag_data and tag_len are not modified if not found.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos
2022-11-07 22:26:00 +01:00
parent 28170100cc
commit fccee34a1e

View File

@@ -83,9 +83,14 @@ int walk_tlv(const uint8_t *cdata, size_t cdata_len, uint8_t **p, uint16_t *tag,
bool asn1_find_tag(const uint8_t *data, size_t data_len, uint16_t itag, size_t *tag_len, uint8_t **tag_data) { bool asn1_find_tag(const uint8_t *data, size_t data_len, uint16_t itag, size_t *tag_len, uint8_t **tag_data) {
uint16_t tag = 0x0; uint16_t tag = 0x0;
uint8_t *p = NULL; uint8_t *p = NULL;
while (walk_tlv(data, data_len, &p, &tag, tag_len, tag_data)) { uint8_t *tdata = NULL;
if (itag == tag) size_t tlen = 0;
while (walk_tlv(data, data_len, &p, &tag, &tlen, &tdata)) {
if (itag == tag) {
*tag_data = tdata;
*tag_len = tlen;
return true; return true;
}
} }
return false; return false;
} }