Abort disabling old PEM keys on I/O errors.

This commit is contained in:
Guus Sliepen 2010-10-22 22:43:50 +02:00
parent a08462bf84
commit 20ae7dd8c1

View file

@ -459,24 +459,33 @@ bool disable_old_keys(FILE *f) {
rewind(f); rewind(f);
pos = ftell(f); pos = ftell(f);
if(pos < 0)
return false;
while(fgets(buf, sizeof buf, f)) { while(fgets(buf, sizeof buf, f)) {
if(!strncmp(buf, "-----BEGIN RSA", 14)) { if(!strncmp(buf, "-----BEGIN RSA", 14)) {
buf[11] = 'O'; buf[11] = 'O';
buf[12] = 'L'; buf[12] = 'L';
buf[13] = 'D'; buf[13] = 'D';
fseek(f, pos, SEEK_SET); if(fseek(f, pos, SEEK_SET))
fputs(buf, f); break;
if(fputs(buf, f) <= 0)
break;
disabled = true; disabled = true;
} }
else if(!strncmp(buf, "-----END RSA", 12)) { else if(!strncmp(buf, "-----END RSA", 12)) {
buf[ 9] = 'O'; buf[ 9] = 'O';
buf[10] = 'L'; buf[10] = 'L';
buf[11] = 'D'; buf[11] = 'D';
fseek(f, pos, SEEK_SET); if(fseek(f, pos, SEEK_SET))
fputs(buf, f); break;
if(fputs(buf, f) <= 0)
break;
disabled = true; disabled = true;
} }
pos = ftell(f); pos = ftell(f);
if(pos < 0)
break;
} }
return disabled; return disabled;