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
No known key found for this signature in database
GPG key ID: C0095B7870A4CCD3

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) {
uint16_t tag = 0x0;
uint8_t *p = NULL;
while (walk_tlv(data, data_len, &p, &tag, tag_len, tag_data)) {
if (itag == tag)
uint8_t *tdata = NULL;
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 false;
}