From: Michael Schroeder Date: Tue, 13 Sep 2022 13:22:52 +0000 (+0200) Subject: Check subpackage length when parsing pubkeys X-Git-Tag: 0.7.23~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6e09e95c4780e500280f69c0deca9d9d2e8aec24;p=thirdparty%2Flibsolv.git Check subpackage length when parsing pubkeys --- diff --git a/ext/repo_pubkey.c b/ext/repo_pubkey.c index a965a652..fdcb9ea4 100644 --- a/ext/repo_pubkey.c +++ b/ext/repo_pubkey.c @@ -458,11 +458,11 @@ pgpsig_init(struct pgpsig *sig, unsigned char *p, int l) sig->haveissuer = 1; memcpy(sig->issuer, q + 1, 8); } - if (x == 2 && j == 0) + if (x == 2 && sl == 5 && j == 0) sig->created = q[1] << 24 | q[2] << 16 | q[3] << 8 | q[4]; - if (x == 3 && j == 0) + if (x == 3 && sl == 5 && j == 0) sig->expires = q[1] << 24 | q[2] << 16 | q[3] << 8 | q[4]; - if (x == 9 && j == 0) + if (x == 9 && sl == 5 && j == 0) sig->keyexpires = q[1] << 24 | q[2] << 16 | q[3] << 8 | q[4]; q += sl; ql -= sl;