X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=lib%2Fdigsig.c;h=8c0e62975c88d49a09c9c29ab9e7a2b1334a6587;hb=a1362d504e26f32f853c65d0448ebc9ffb190f7d;hp=286d558033e270524ff3fdeac9c96393b81170a6;hpb=c5c7fb8fbd7cd228132b6e2a17a10f246ffc06ee;p=karo-tx-linux.git diff --git a/lib/digsig.c b/lib/digsig.c index 286d558033e2..8c0e62975c88 100644 --- a/lib/digsig.c +++ b/lib/digsig.c @@ -163,9 +163,11 @@ static int digsig_verify_rsa(struct key *key, memcpy(out1 + head, p, l); err = pkcs_1_v1_5_decode_emsa(out1, len, mblen, out2, &len); + if (err) + goto err; - if (!err && len == hlen) - err = memcmp(out2, h, hlen); + if (len != hlen || memcmp(out2, h, hlen)) + err = -EINVAL; err: mpi_free(in);