[auth.c key.c misc.c packet.c ssh-add.c]
in a switch (), break after return or goto is stupid
[key.c]
(really) last of the Coverity diffs: avoid possible NULL deref in
key_free. via elad AT netbsd.org; markus@ ok
[key.c]
(really) last of the Coverity diffs: avoid possible NULL deref in
key_free. via elad AT netbsd.org; markus@ ok
+ - deraadt@cvs.openbsd.org 2006/03/20 17:10:19
+ [auth.c key.c misc.c packet.c ssh-add.c]
+ in a switch (), break after return or goto is stupid
20060325
- OpenBSD CVS Sync
20060325
- OpenBSD CVS Sync
switch (options.permit_root_login) {
case PERMIT_YES:
return 1;
switch (options.permit_root_login) {
case PERMIT_YES:
return 1;
case PERMIT_NO_PASSWD:
if (strcmp(method, "password") != 0)
return 1;
case PERMIT_NO_PASSWD:
if (strcmp(method, "password") != 0)
return 1;
return a->rsa != NULL && b->rsa != NULL &&
BN_cmp(a->rsa->e, b->rsa->e) == 0 &&
BN_cmp(a->rsa->n, b->rsa->n) == 0;
return a->rsa != NULL && b->rsa != NULL &&
BN_cmp(a->rsa->e, b->rsa->e) == 0 &&
BN_cmp(a->rsa->n, b->rsa->n) == 0;
case KEY_DSA:
return a->dsa != NULL && b->dsa != NULL &&
BN_cmp(a->dsa->p, b->dsa->p) == 0 &&
BN_cmp(a->dsa->q, b->dsa->q) == 0 &&
BN_cmp(a->dsa->g, b->dsa->g) == 0 &&
BN_cmp(a->dsa->pub_key, b->dsa->pub_key) == 0;
case KEY_DSA:
return a->dsa != NULL && b->dsa != NULL &&
BN_cmp(a->dsa->p, b->dsa->p) == 0 &&
BN_cmp(a->dsa->q, b->dsa->q) == 0 &&
BN_cmp(a->dsa->g, b->dsa->g) == 0 &&
BN_cmp(a->dsa->pub_key, b->dsa->pub_key) == 0;
default:
fatal("key_equal: bad key type %d", a->type);
break;
default:
fatal("key_equal: bad key type %d", a->type);
break;
break;
case KEY_UNSPEC:
return retval;
break;
case KEY_UNSPEC:
return retval;
default:
fatal("key_fingerprint_raw: bad key type %d", k->type);
break;
default:
fatal("key_fingerprint_raw: bad key type %d", k->type);
break;
switch (k->type) {
case KEY_RSA1:
return "RSA1";
switch (k->type) {
case KEY_RSA1:
return "RSA1";
case KEY_RSA:
return "RSA";
case KEY_RSA:
return "RSA";
case KEY_DSA:
return "DSA";
case KEY_DSA:
return "DSA";
switch (k->type) {
case KEY_RSA:
return "ssh-rsa";
switch (k->type) {
case KEY_RSA:
return "ssh-rsa";
case KEY_DSA:
return "ssh-dss";
case KEY_DSA:
return "ssh-dss";
}
return "ssh-unknown";
}
}
return "ssh-unknown";
}
case KEY_RSA1:
case KEY_RSA:
return BN_num_bits(k->rsa->n);
case KEY_RSA1:
case KEY_RSA:
return BN_num_bits(k->rsa->n);
case KEY_DSA:
return BN_num_bits(k->dsa->p);
case KEY_DSA:
return BN_num_bits(k->dsa->p);
rsa_generate_private_key(u_int bits)
{
RSA *private;
rsa_generate_private_key(u_int bits)
{
RSA *private;
private = RSA_generate_key(bits, 35, NULL, NULL);
if (private == NULL)
fatal("rsa_generate_private_key: key generation failed.");
private = RSA_generate_key(bits, 35, NULL, NULL);
if (private == NULL)
fatal("rsa_generate_private_key: key generation failed.");
dsa_generate_private_key(u_int bits)
{
DSA *private = DSA_generate_parameters(bits, NULL, 0, NULL, NULL, NULL, NULL);
dsa_generate_private_key(u_int bits)
{
DSA *private = DSA_generate_parameters(bits, NULL, 0, NULL, NULL, NULL, NULL);
if (private == NULL)
fatal("dsa_generate_private_key: DSA_generate_parameters failed");
if (!DSA_generate_key(private))
if (private == NULL)
fatal("dsa_generate_private_key: DSA_generate_parameters failed");
if (!DSA_generate_key(private))
switch (key->type) {
case KEY_DSA:
return ssh_dss_sign(key, sigp, lenp, data, datalen);
switch (key->type) {
case KEY_DSA:
return ssh_dss_sign(key, sigp, lenp, data, datalen);
case KEY_RSA:
return ssh_rsa_sign(key, sigp, lenp, data, datalen);
case KEY_RSA:
return ssh_rsa_sign(key, sigp, lenp, data, datalen);
default:
error("key_sign: invalid key type %d", key->type);
return -1;
default:
error("key_sign: invalid key type %d", key->type);
return -1;
switch (key->type) {
case KEY_DSA:
return ssh_dss_verify(key, signature, signaturelen, data, datalen);
switch (key->type) {
case KEY_DSA:
return ssh_dss_verify(key, signature, signaturelen, data, datalen);
case KEY_RSA:
return ssh_rsa_verify(key, signature, signaturelen, data, datalen);
case KEY_RSA:
return ssh_rsa_verify(key, signature, signaturelen, data, datalen);
default:
error("key_verify: invalid key type %d", key->type);
return -1;
default:
error("key_verify: invalid key type %d", key->type);
return -1;
switch (*endp++) {
case '\0':
endp--;
switch (*endp++) {
case '\0':
endp--;
case 's':
case 'S':
break;
case 's':
case 'S':
break;
break;
default:
return type;
break;
default:
return type;
}
} else {
type = packet_read_poll1();
}
} else {
type = packet_read_poll1();
if (type)
DBG(debug("received packet type %d", type));
return type;
if (type)
DBG(debug("received packet type %d", type));
return type;
if (list_identities(ac, ch == 'l' ? 1 : 0) == -1)
ret = 1;
goto done;
if (list_identities(ac, ch == 'l' ? 1 : 0) == -1)
ret = 1;
goto done;
case 'x':
case 'X':
if (lock_agent(ac, ch == 'x' ? 1 : 0) == -1)
ret = 1;
goto done;
case 'x':
case 'X':
if (lock_agent(ac, ch == 'x' ? 1 : 0) == -1)
ret = 1;
goto done;
case 'c':
confirm = 1;
break;
case 'c':
confirm = 1;
break;
if (delete_all(ac) == -1)
ret = 1;
goto done;
if (delete_all(ac) == -1)
ret = 1;
goto done;
case 's':
sc_reader_id = optarg;
break;
case 's':
sc_reader_id = optarg;
break;