Skip to content

Commit

Permalink
fix integer size
Browse files Browse the repository at this point in the history
  • Loading branch information
tihmstar committed Feb 13, 2025
1 parent f42f98e commit 124397b
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions img4tool/ASN1DERElement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -237,10 +237,18 @@ std::string ASN1DERElement::getStringValue() const{
uint64_t ASN1DERElement::getIntegerValue() const{
uint64_t rt = 0;
assure(_buf->tagNumber == TagNumber::TagINTEGER || _buf->tagNumber == TagNumber::TagBOOLEAN);
assure(payloadSize() <= sizeof(uint64_t));
for (uint8_t sizebits = 0; sizebits < payloadSize(); sizebits++) {
uint8_t *data = (uint8_t*)payload();
size_t dataSize = payloadSize();

while (dataSize > 0 && *data == 0) {
data++;
dataSize--;
}

assure(dataSize <= sizeof(uint64_t));
for (uint8_t sizebits = 0; sizebits < dataSize; sizebits++) {
rt <<= 8;
rt |= ((uint8_t*)payload())[sizebits];
rt |= data[sizebits];
}
return rt;
}
Expand Down

0 comments on commit 124397b

Please sign in to comment.