1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 09:27:59 +00:00

Fix enum-conflation in cmdgen.c.

I'd somehow managed to declare an enum in cmdgen.c with key types
OPENSSH and SSHCOM, and use it interchangeably with the one in ssh.h
with SSH_KEYTYPE_OPENSSH and SSH_KEYTYPE_SSHCOM.

It so happened that the relevant two enum values matched up! So this
hasn't caused a bug yet, but it's an accident waiting to happen. Fix
it before it does.
This commit is contained in:
Simon Tatham 2015-04-28 19:46:08 +01:00
parent 38d1db194d
commit 78b8bde7af

View File

@ -920,7 +920,7 @@ int main(int argc, char **argv)
outfilename = filename_from_str(outfile ? outfile : "");
switch (outtype) {
int ret;
int ret, real_outtype;
case PRIVATE:
if (sshver == 1) {
@ -1058,7 +1058,15 @@ int main(int argc, char **argv)
assert(ssh2key);
random_ref(); /* both foreign key types require randomness,
* for IV or padding */
ret = export_ssh2(outfilename, outtype, ssh2key, passphrase);
switch (outtype) {
case OPENSSH:
real_outtype = SSH_KEYTYPE_OPENSSH;
break;
case SSHCOM:
real_outtype = SSH_KEYTYPE_SSHCOM;
break;
}
ret = export_ssh2(outfilename, real_outtype, ssh2key, passphrase);
if (!ret) {
fprintf(stderr, "puttygen: unable to export key\n");
return 1;