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?
--
James Morris
[off-list ref]