tests/qtest/libqtest.c: Check for g_setenv() failure

Coverity points out that g_setenv() can fail and we don't
check for this in qtest_inproc_init(). In practice this will
only fail if a memory allocation failed in setenv() or if
the caller passed an invalid architecture name (e.g. one
with an '=' in it), so rather than requiring the callsite
to check for failure, make g_setenv() failure fatal here,
similarly to what we did in commit aca68d95c5.

Resolves: Coverity CID 1497485
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20240312183810.557768-8-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2024-03-25 10:41:01 +00:00
parent 43199b1393
commit fe3e383901

View File

@ -1814,7 +1814,11 @@ QTestState *qtest_inproc_init(QTestState **s, bool log, const char* arch,
* way, qtest_get_arch works for inproc qtest. * way, qtest_get_arch works for inproc qtest.
*/ */
gchar *bin_path = g_strconcat("/qemu-system-", arch, NULL); gchar *bin_path = g_strconcat("/qemu-system-", arch, NULL);
g_setenv("QTEST_QEMU_BINARY", bin_path, 0); if (!g_setenv("QTEST_QEMU_BINARY", bin_path, 0)) {
fprintf(stderr,
"Could not set environment variable QTEST_QEMU_BINARY\n");
exit(1);
}
g_free(bin_path); g_free(bin_path);
return qts; return qts;