[PATCH] ui/spice-app: detect runtime directory creation failures

zhaoguohan@kylinos.cn posted 1 patch 3 days, 13 hours ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260408031725.641417-1-zhaoguohan@kylinos.cn
Maintainers: "Marc-André Lureau" <marcandre.lureau@redhat.com>
ui/spice-app.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] ui/spice-app: detect runtime directory creation failures
Posted by zhaoguohan@kylinos.cn 3 days, 13 hours ago
From: GuoHan Zhao <zhaoguohan@kylinos.cn>

spice_app_display_early_init() creates the per-VM runtime directory
with g_mkdir_with_parents() before setting up the Spice socket. The
code checks for "< -1", but g_mkdir_with_parents() returns -1 on
failure, so the error path is never taken.

This lets spice-app continue after a directory creation failure and
defers the problem to later setup steps.

Check for "< 0" instead so the failure is reported immediately and
spice-app exits before using an invalid runtime directory.

Fixes: d8aec9d9f129 ("display: add -display spice-app launching a Spice client")
Signed-off-by: GuoHan Zhao <zhaoguohan@kylinos.cn>
---
 ui/spice-app.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ui/spice-app.c b/ui/spice-app.c
index 9e55f2737159..0df7325e6792 100644
--- a/ui/spice-app.c
+++ b/ui/spice-app.c
@@ -151,7 +151,7 @@ static void spice_app_display_early_init(DisplayOptions *opts)
     if (qemu_name) {
         app_dir = g_build_filename(g_get_user_runtime_dir(),
                                    "qemu", qemu_name, NULL);
-        if (g_mkdir_with_parents(app_dir, S_IRWXU) < -1) {
+        if (g_mkdir_with_parents(app_dir, S_IRWXU) < 0) {
             error_report("Failed to create directory %s: %s",
                          app_dir, strerror(errno));
             exit(1);
-- 
2.43.0
Re: [PATCH] ui/spice-app: detect runtime directory creation failures
Posted by Marc-André Lureau 3 days, 11 hours ago
Hi

On Wed, Apr 8, 2026 at 7:18 AM <zhaoguohan@kylinos.cn> wrote:
>
> From: GuoHan Zhao <zhaoguohan@kylinos.cn>
>
> spice_app_display_early_init() creates the per-VM runtime directory
> with g_mkdir_with_parents() before setting up the Spice socket. The
> code checks for "< -1", but g_mkdir_with_parents() returns -1 on
> failure, so the error path is never taken.
>
> This lets spice-app continue after a directory creation failure and
> defers the problem to later setup steps.
>
> Check for "< 0" instead so the failure is reported immediately and
> spice-app exits before using an invalid runtime directory.
>
> Fixes: d8aec9d9f129 ("display: add -display spice-app launching a Spice client")
> Signed-off-by: GuoHan Zhao <zhaoguohan@kylinos.cn>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

> ---
>  ui/spice-app.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/ui/spice-app.c b/ui/spice-app.c
> index 9e55f2737159..0df7325e6792 100644
> --- a/ui/spice-app.c
> +++ b/ui/spice-app.c
> @@ -151,7 +151,7 @@ static void spice_app_display_early_init(DisplayOptions *opts)
>      if (qemu_name) {
>          app_dir = g_build_filename(g_get_user_runtime_dir(),
>                                     "qemu", qemu_name, NULL);
> -        if (g_mkdir_with_parents(app_dir, S_IRWXU) < -1) {
> +        if (g_mkdir_with_parents(app_dir, S_IRWXU) < 0) {
>              error_report("Failed to create directory %s: %s",
>                           app_dir, strerror(errno));
>              exit(1);
> --
> 2.43.0
>