if (0 == strncmp(line, "-----END ", 9) &&
0 == strcmp(line+strlen(line)-16, "PRIVATE KEY-----")) {
sfree(line);
+ line = NULL;
break; /* done */
}
if ((p = strchr(line, ':')) != NULL) {
strip_crlf(line);
if (!strcmp(line, "---- END SSH2 ENCRYPTED PRIVATE KEY ----")) {
sfree(line);
+ line = NULL;
break; /* done */
}
if ((p = strchr(line, ':')) != NULL) {
answer = 1;
done:
- *comment = dupstr(key ? key->comment : "");
- smemclr(key->keyblob, key->keyblob_size);
- sfree(key->keyblob);
- smemclr(key, sizeof(*key));
- sfree(key);
+ if (key) {
+ *comment = dupstr(key->comment);
+ smemclr(key->keyblob, key->keyblob_size);
+ sfree(key->keyblob);
+ smemclr(key, sizeof(*key));
+ sfree(key);
+ } else {
+ *comment = dupstr("");
+ }
return answer;
}