On 16/08/11 04:00, James Morris wrote: > On Thu, 11 Aug 2011, Dmitry Kasatkin wrote: > >> +static int ksign_verify_rsa(struct key *key, >> + const char *sig, int siglen, >> + const char *h, int hlen) >> +{ >> + int err = -ENOMEM; >> + unsigned long len; >> + unsigned long mlen, mblen; >> + unsigned nret, l; >> + int valid, head, i; >> + unsigned char *out1 = NULL, *out2 = NULL; >> + MPI in = NULL, res = NULL, pkey[2]; >> + uint8_t *p, *datap, *endp; >> + struct user_key_payload *ukp; >> + struct pubkey_hdr *pkh; >> + >> + down_read(&key->sem); >> + ukp = key->payload.data; >> + pkh = (struct pubkey_hdr *)ukp->data; >> + >> + if (pkh->version != 1) >> + return -EINVAL; >> + >> + if (pkh->algo != PUBKEY_ALGO_RSA) >> + return -EINVAL; > Are you supposed to be still holding key->sem here? > Of course not. that was late addition. Should be goto as in following cases... - Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html