Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/crypto/external/bsd/openssh/dist



On Feb 6,  1:26pm, maya%netbsd.org@localhost (maya%netbsd.org@localhost) wrote:
-- Subject: Re: CVS commit: src/crypto/external/bsd/openssh/dist

| > +	const BIGNUM *pub_key;
| > +	if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0)
| > +		goto out;
| > +	DH_get0_key(kex->dh, &pub_key, NULL);
| > +	if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_INIT)) != 0 ||
| > +	    (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 ||
| > +	    (r = sshpkt_send(ssh)) != 0) {
| >  		goto out;
| > +	}
| > +	}
| >  	debug("SSH2_MSG_KEX_DH_GEX_INIT sent");
| >  #ifdef DEBUG_KEXDH
| >  	DHparams_print_fp(stderr, kex->dh);
| > @@ -134,10 +140,12 @@ input_kex_dh_gex_group(int type, u_int32
| >  	ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_REPLY, &input_kex_dh_gex_reply);
| >  	r = 0;
| >  out:
| > -	if (p)
| > +	if (r != 0) {
| >  		BN_clear_free(p);
| > -	if (g)
| >  		BN_clear_free(g);
| > +		DH_free(kex->dh);
| > +		kex->dh = NULL;
| > +	}
| >  	return r;
| 
| BN_clear_free will null deref on this error path I think


void BN_clear_free(BIGNUM *a) 
{
    int i; 

    if (a == NULL)
        return;


christos



Home | Main Index | Thread Index | Old Index