logprintf(STDERR_FILENO,
"Unable to read passphrase: %s\n",
strerror(errno));
- goto exit;
+ goto err_free_buffer;
}
/* EOF ? */
if ((size_t)len < filelen - offset) {
logprintf(STDERR_FILENO,
"Requested %zu bytes for key, only got %zu.\n",
*keylen, sizeof(hashbuf));
- goto exit;
+ goto err_free_buffer;
}
SHA512(filebuffer, len, hashbuf);
memcpy(key, hashbuf, *keylen);
EVP_sha512(), *keylen, key) != 1) {
logprintf(STDERR_FILENO,
"PKCS5_PBKDF2_HMAC with SHA512 failed\n");
- goto exit;
+ goto err_free_buffer;
}
break;
case KDF_IDENTIFIER_UNKNOWN:
logprintf(STDERR_FILENO,
"Unknown KDF\n");
- goto exit;
+ goto err_free_buffer;
}
ret = 0;
-exit:
-
+err_free_buffer:
free(filebuffer);
+exit:
return ret;
}