X-Git-Url: https://the.earth.li/gitweb/?a=blobdiff_plain;f=decodekey.c;h=be80151d2822c31ddef27de3dfe6cfbfc1d42368;hb=409ce1e3784064ab8f2786a9600a30809c502a46;hp=522ad901383dd6a217b0ef5ed2320a93e3d51f8b;hpb=ec38d8bd7e8a66645e75e3d6c8b9dadb5dd85ec7;p=onak.git diff --git a/decodekey.c b/decodekey.c index 522ad90..be80151 100644 --- a/decodekey.c +++ b/decodekey.c @@ -82,6 +82,10 @@ onak_status_t parse_subpackets(unsigned char *data, size_t len, packetlen <<= 8; packetlen |= data[offset++]; } + /* Check the supplied length is within the remaining data */ + if (packetlen == 0 || (packetlen + offset) > length) { + return ONAK_E_INVALID_PKT; + } switch (data[offset] & 0x7F) { case OPENPGP_SIGSUB_CREATION: /*