X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fdigsig.c;h=8c0e62975c88d49a09c9c29ab9e7a2b1334a6587;hb=f4178cdddd4cb860a17f363fe13264fff03da7f2;hp=286d558033e270524ff3fdeac9c96393b81170a6;hpb=1ad105fc77e61f9dd7a272659a248e2979fdb893;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);