diff --git a/src/setup_payload/QRCodeSetupPayloadParser.cpp b/src/setup_payload/QRCodeSetupPayloadParser.cpp index 71075cb58ca813..f82e9b4666cd51 100644 --- a/src/setup_payload/QRCodeSetupPayloadParser.cpp +++ b/src/setup_payload/QRCodeSetupPayloadParser.cpp @@ -194,8 +194,9 @@ CHIP_ERROR QRCodeSetupPayloadParser::retrieveOptionalInfos(SetupPayload & outPay continue; } - const uint8_t tag = static_cast(TLV::TagNumFromTag(reader.GetTag())); - VerifyOrReturnError(TLV::IsContextTag(tag) == true || TLV::IsProfileTag(tag) == true, CHIP_ERROR_INVALID_TLV_TAG); + TLV::Tag tag = reader.GetTag(); + VerifyOrReturnError(TLV::IsContextTag(tag), CHIP_ERROR_INVALID_TLV_TAG); + const uint8_t tagNumber = static_cast(TLV::TagNumFromTag(tag)); optionalQRCodeInfoType elemType = optionalQRCodeInfoTypeUnknown; if (type == TLV::kTLVType_UTF8String) @@ -204,13 +205,13 @@ CHIP_ERROR QRCodeSetupPayloadParser::retrieveOptionalInfos(SetupPayload & outPay } if (type == TLV::kTLVType_SignedInteger || type == TLV::kTLVType_UnsignedInteger) { - elemType = outPayload.getNumericTypeFor(tag); + elemType = outPayload.getNumericTypeFor(tagNumber); } - if (IsCHIPTag(tag)) + if (IsCHIPTag(tagNumber)) { OptionalQRCodeInfoExtension info; - info.tag = tag; + info.tag = tagNumber; ReturnErrorOnFailure(retrieveOptionalInfo(reader, info, elemType)); ReturnErrorOnFailure(outPayload.addOptionalExtensionData(info)); @@ -218,7 +219,7 @@ CHIP_ERROR QRCodeSetupPayloadParser::retrieveOptionalInfos(SetupPayload & outPay else { OptionalQRCodeInfo info; - info.tag = tag; + info.tag = tagNumber; ReturnErrorOnFailure(retrieveOptionalInfo(reader, info, elemType)); ReturnErrorOnFailure(outPayload.addOptionalVendorData(info));