tlv: Use self._compute_tag() method rather than direct self.tag

The TLV_IE.from_tlv() method is part of a base class that is inherited
by more specific classes.  The official way to obtain the tag is the
inherited-class-provided self._compute_tag() method, and *not* a direct
reference to the self.tag member.

This allows for some more obscure TLV parsers, such as the upcoming one
for Proactive Commands in the CAT/OTA context.

Change-Id: I0cd70e31567edc5a0584336efcb5e4282734f6dd
This commit is contained in:
Harald Welte 2022-08-06 13:16:19 +02:00
parent f56b6b2a1c
commit 7d8029eb23
1 changed files with 1 additions and 1 deletions

View File

@ -236,7 +236,7 @@ class TLV_IE(IE):
return {}, b''
(rawtag, remainder) = self.__class__._parse_tag_raw(do)
if rawtag:
if rawtag != self.tag:
if rawtag != self._compute_tag():
raise ValueError("%s: Encountered tag %s doesn't match our supported tag %s" %
(self, rawtag, self.tag))
(length, remainder) = self.__class__._parse_len(remainder)