#include "analyze.h"
#include "analyze-srk.h"
+#include "fileio.h"
#include "tpm2-util.h"
int verb_srk(int argc, char *argv[], void *userdata) {
return log_error_errno(r, "Failed to marshal SRK: %m");
if (isatty(STDOUT_FILENO))
- return log_error_errno(SYNTHETIC_ERRNO(EIO), "Refusing to write binary data to TTY, please redirect output to file.");
+ return log_error_errno(SYNTHETIC_ERRNO(EIO),
+ "Refusing to write binary data to TTY, please redirect output to file.");
if (fwrite(marshalled, 1, marshalled_size, stdout) != marshalled_size)
- return log_error_errno(errno, "Failed to write SRK to stdout: %m");
+ return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to write SRK to stdout: %m");
- fflush(stdout);
+ r = fflush_and_check(stdout);
+ if (r < 0)
+ return log_error_errno(r, "Failed to write SRK to stdout: %m");
return EXIT_SUCCESS;
#else
}
if (fwrite(data, 1, size, f) != size)
- return log_error_errno(errno, "Failed to write credential data: %m");
+ return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to write credential data: %m");
r = print_newline(f, data, size);
if (r < 0)
return r;
- if (fflush(f) != 0)
- return log_error_errno(errno, "Failed to flush output: %m");
+ r = fflush_and_check(f);
+ if (r < 0)
+ return log_error_errno(r, "Failed to flush output: %m");
return 0;
}
static int write_uint64(FILE *fp, uint64_t p) {
if (fwrite(&p, sizeof(p), 1, fp) != 1)
- return -errno;
+ return -EIO;
return 0;
}
if (runtime_key.pkey) {
if (memcmp_nn(tpm2_key.fingerprint, tpm2_key.fingerprint_size,
runtime_key.fingerprint, runtime_key.fingerprint_size) != 0)
- return log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Saved runtime SRK differs from TPM SRK, refusing.");
+ return log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
+ "Saved runtime SRK differs from TPM SRK, refusing.");
if (arg_early) {
log_info("SRK saved in '%s' matches SRK in TPM2.", runtime_key.path);
return log_error_errno(r, "Failed to marshal TPM2_PUBLIC key.");
if (fwrite(marshalled, 1, marshalled_size, f) != marshalled_size)
- return log_error_errno(errno, "Failed to write SRK public key file '%s'.", tpm2b_public_path);
+ return log_error_errno(SYNTHETIC_ERRNO(EIO),
+ "Failed to write SRK public key file '%s'.", tpm2b_public_path);
if (fchmod(fileno(f), 0444) < 0)
return log_error_errno(errno, "Failed to adjust access mode of SRK public key file '%s' to 0444: %m", tpm2b_public_path);