On 2/1/26 12:27 PM, Vladimir Sementsov-Ogievskiy wrote:
The code tends to include errno into error messages after
tpm_util_test_tpmdev() and tpm_emulator_ctrlcmd() calls.
Both has error paths, where errno is not set, examples:
tpm_emulator_ctrlcmd()
qemu_chr_fe_write_all()
qemu_chr_write()
replay_char_write_event_load()
...
*res = replay_get_dword();
...
tpm_util_test_tpmdev()
tpm_util_test()
tpm_util_request()
...
if (n != requestlen) {
return -EFAULT;
}
...
Both doesn't document that they set errno.
Let's drop these explicit usage of errno. If we need this information,
it should be added to errp deeper in the stack.
Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: Stefan Berger <[email protected]>
Reviewed-by: Markus Armbruster <[email protected]>
---
@@ -539,8 +535,7 @@ static void tpm_emulator_cancel_cmd(TPMBackend *tb)
/* FIXME: make the function non-blocking, or it may block a VCPU */
if (tpm_emulator_ctrlcmd(tpm_emu, CMD_CANCEL_TPM_CMD, &res, 0,
sizeof(ptm_res), sizeof(res)) < 0) {
- error_report("tpm-emulator: Could not cancel command: %s",
- strerror(errno));
+ error_report("tpm-emulator: Could not cancel command: %s");
Remove the '%s'.
I get these build errors now:
../backends/tpm/tpm_emulator.c: In function ‘tpm_emulator_cancel_cmd’:
../backends/tpm/tpm_emulator.c:538:22: error: format ‘%s’ expects a
matching ‘char *’ argument [-Werror=format=]
538 | error_report("tpm-emulator: Could not cancel command: %s");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../backends/tpm/tpm_emulator.c: In function ‘tpm_emulator_post_load’:
../backends/tpm/tpm_emulator.c:958:9: error: unused variable ‘ret’
[-Werror=unused-variable]
958 | int ret;
| ^~~
cc1: all warnings being treated as errors