qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL v2 0/9] Misc QGA fixes for 2025-08-29
@ 2025-09-01 11:24 Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 1/9] qga: Fix ubsan warning Kostiantyn Kostiuk
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Kostiantyn Kostiuk @ 2025-09-01 11:24 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Richard Henderson

The following changes since commit e771ba98de25c9f43959f79fc7099cf7fbba44cc:

  Open 10.2 development tree (2025-08-26 14:10:25 -0400)

are available in the Git repository at:

  https://github.com/kostyanf14/qemu.git tags/qga-pull-2025-08-29-v2

for you to fetch changes up to 28c5d27dd4dc4100a96ff4c9e5871dd23c6b02ec:

  qga: Fix truncated output handling in guest-exec status reporting (2025-09-01 14:02:18 +0300)

----------------------------------------------------------------
qga-pull-2025-08-29-v2


v2 -> v1: Fix author of commit
v1: https://lists.gnu.org/archive/html/qemu-devel/2025-08/msg04615.html

----------------------------------------------------------------
Denis V. Lunev (1):
      qga: fix potentially not initialized nr_volumes in qga_vss_fsfreeze()

Kostiantyn Kostiuk (6):
      qga-vss: Replace asserts with condition and report error
      qga-vss: Remove unused dependencies
      qga: Fix channel initialization check in run_agent_once
      qga: ignore channel_init() fail if 'retry_path' is set
      qga-vss: Write hex value of error in log
      qga/installer: Remove QGA VSS if QGA installation failed

Thomas Huth (1):
      qga: Fix ubsan warning

minglei.liu (1):
      qga: Fix truncated output handling in guest-exec status reporting

 qga/commands-linux.c        | 10 +++++-----
 qga/commands.c              |  6 ++++--
 qga/installer/qemu-ga.wxs   | 23 +++++++++++++++++++++--
 qga/main.c                  | 10 +++++++---
 qga/vss-win32.c             |  2 ++
 qga/vss-win32/meson.build   |  4 +---
 qga/vss-win32/requester.cpp | 24 +++++++++++++++++++-----
 7 files changed, 59 insertions(+), 20 deletions(-)

--
2.50.1



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PULL v2 1/9] qga: Fix ubsan warning
  2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
@ 2025-09-01 11:24 ` Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 2/9] qga: fix potentially not initialized nr_volumes in qga_vss_fsfreeze() Kostiantyn Kostiuk
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Kostiantyn Kostiuk @ 2025-09-01 11:24 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Richard Henderson

From: Thomas Huth <thuth@redhat.com>

When compiling QEMU with --enable-ubsan there is a undefined behavior
warning when running "make check":

 .../qga/commands-linux.c:452:15: runtime error: applying non-zero offset 5 to null pointer
 #0 0x55ea7b89450c in build_guest_fsinfo_for_pci_dev ..../qga/commands-linux.c:452:15

Fix it by avoiding the additional pointer variable here and use an
"offset" integer variable instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250730072709.27077-1-thuth@redhat.com
Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
---
 qga/commands-linux.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/qga/commands-linux.c b/qga/commands-linux.c
index 9dc0c82503..4a09ddc760 100644
--- a/qga/commands-linux.c
+++ b/qga/commands-linux.c
@@ -400,10 +400,10 @@ static bool build_guest_fsinfo_for_pci_dev(char const *syspath,
                                            Error **errp)
 {
     unsigned int pci[4], host, hosts[8], tgt[3];
-    int i, nhosts = 0, pcilen;
+    int i, offset, nhosts = 0, pcilen;
     GuestPCIAddress *pciaddr = disk->pci_controller;
     bool has_ata = false, has_host = false, has_tgt = false;
-    char *p, *q, *driver = NULL;
+    char *p, *driver = NULL;
     bool ret = false;
 
     p = strstr(syspath, "/devices/pci");
@@ -445,13 +445,13 @@ static bool build_guest_fsinfo_for_pci_dev(char const *syspath,
 
     p = strstr(syspath, "/ata");
     if (p) {
-        q = p + 4;
+        offset = 4;
         has_ata = true;
     } else {
         p = strstr(syspath, "/host");
-        q = p + 5;
+        offset = 5;
     }
-    if (p && sscanf(q, "%u", &host) == 1) {
+    if (p && sscanf(p + offset, "%u", &host) == 1) {
         has_host = true;
         nhosts = build_hosts(syspath, p, has_ata, hosts,
                              ARRAY_SIZE(hosts), errp);
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PULL v2 2/9] qga: fix potentially not initialized nr_volumes in qga_vss_fsfreeze()
  2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 1/9] qga: Fix ubsan warning Kostiantyn Kostiuk
@ 2025-09-01 11:24 ` Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 3/9] qga-vss: Replace asserts with condition and report error Kostiantyn Kostiuk
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Kostiantyn Kostiuk @ 2025-09-01 11:24 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Richard Henderson

From: "Denis V. Lunev" <den@openvz.org>

In this function we could have this variable not initialized. If this
could be acceptable on error, the variable could be left not initialized
f.e. as follows:

void requester_freeze(int *num_vols, void *mountpoints, ErrorSet *errset)
{
    ...
    if (mountpoints) {
        ...
        if (num_mount_points == 0) {
            /* If there is no valid mount points, just exit. */
            goto out;
        }
    }
    ...
    if (!mountpoints) {
        ...
        if (num_fixed_drives == 0) {
            goto out; /* If there is no fixed drive, just exit. */
        }
    }
    ...
}

Stay on safe side, initialize the variable at the beginning.

Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Kostiantyn Kostiuk <kkostiuk@redhat.com>
CC: Michael Roth <michael.roth@amd.com>
Reviewed-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250807133221.1135453-1-den@openvz.org
Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
---
 qga/vss-win32.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/qga/vss-win32.c b/qga/vss-win32.c
index f444a25a70..b272bfc782 100644
--- a/qga/vss-win32.c
+++ b/qga/vss-win32.c
@@ -157,6 +157,8 @@ void qga_vss_fsfreeze(int *nr_volume, bool freeze,
         .errp = errp,
     };
 
+    *nr_volume = 0;
+
     g_assert(errp);             /* requester.cpp requires it */
     func = (QGAVSSRequesterFunc)GetProcAddress(provider_lib, func_name);
     if (!func) {
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PULL v2 3/9] qga-vss: Replace asserts with condition and report error
  2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 1/9] qga: Fix ubsan warning Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 2/9] qga: fix potentially not initialized nr_volumes in qga_vss_fsfreeze() Kostiantyn Kostiuk
@ 2025-09-01 11:24 ` Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 4/9] qga-vss: Remove unused dependencies Kostiantyn Kostiuk
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Kostiantyn Kostiuk @ 2025-09-01 11:24 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Richard Henderson

Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250825145241.170717-2-kkostiuk@redhat.com
Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
---
 qga/vss-win32/requester.cpp | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp
index 4401d55e3a..bc260abb96 100644
--- a/qga/vss-win32/requester.cpp
+++ b/qga/vss-win32/requester.cpp
@@ -347,7 +347,12 @@ void requester_freeze(int *num_vols, void *mountpoints, ErrorSet *errset)
         goto out;
     }
 
-    assert(pCreateVssBackupComponents != NULL);
+    if (!pCreateVssBackupComponents) {
+        err_set(errset, (HRESULT)ERROR_PROC_NOT_FOUND,
+                "CreateVssBackupComponents proc address absent. Did you call requester_init()?");
+        goto out;
+    }
+
     hr = pCreateVssBackupComponents(&vss_ctx.pVssbc);
     if (FAILED(hr)) {
         err_set(errset, hr, "failed to create VSS backup components");
@@ -579,8 +584,16 @@ void requester_thaw(int *num_vols, void *mountpints, ErrorSet *errset)
     /* Tell the provider that the snapshot is finished. */
     SetEvent(vss_ctx.hEventThaw);
 
-    assert(vss_ctx.pVssbc);
-    assert(vss_ctx.pAsyncSnapshot);
+    if (!vss_ctx.pVssbc) {
+        err_set(errset, (HRESULT)VSS_E_BAD_STATE,
+                "CreateVssBackupComponents is missing. Did you freeze the volumes?");
+        return;
+    }
+    if (!vss_ctx.pAsyncSnapshot) {
+        err_set(errset, (HRESULT)VSS_E_BAD_STATE,
+                "AsyncSnapshot set is missing. Did you freeze the volumes?");
+        return;
+    }
 
     HRESULT hr = WaitForAsync(vss_ctx.pAsyncSnapshot);
     switch (hr) {
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PULL v2 4/9] qga-vss: Remove unused dependencies
  2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
                   ` (2 preceding siblings ...)
  2025-09-01 11:24 ` [PULL v2 3/9] qga-vss: Replace asserts with condition and report error Kostiantyn Kostiuk
@ 2025-09-01 11:24 ` Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 5/9] qga: Fix channel initialization check in run_agent_once Kostiantyn Kostiuk
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Kostiantyn Kostiuk @ 2025-09-01 11:24 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Richard Henderson

Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250825145241.170717-3-kkostiuk@redhat.com
Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
---
 qga/vss-win32/meson.build | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build
index 0ac918910b..a6b810f12a 100644
--- a/qga/vss-win32/meson.build
+++ b/qga/vss-win32/meson.build
@@ -13,13 +13,11 @@ qga_vss = shared_module(
   link_args: link_args,
   vs_module_defs: 'qga-vss.def',
   dependencies: [
-    glib,
     socket,
     cc.find_library('ole32'),
     cc.find_library('oleaut32'),
     cc.find_library('shlwapi'),
-    cc.find_library('uuid'),
-    cc.find_library('intl')
+    cc.find_library('uuid')
   ]
 )
 
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PULL v2 5/9] qga: Fix channel initialization check in run_agent_once
  2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
                   ` (3 preceding siblings ...)
  2025-09-01 11:24 ` [PULL v2 4/9] qga-vss: Remove unused dependencies Kostiantyn Kostiuk
@ 2025-09-01 11:24 ` Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 6/9] qga: ignore channel_init() fail if 'retry_path' is set Kostiantyn Kostiuk
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Kostiantyn Kostiuk @ 2025-09-01 11:24 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Richard Henderson

Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250825140549.146617-2-kkostiuk@redhat.com
Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
---
 qga/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qga/main.c b/qga/main.c
index 6c02f3ec38..a1bf8f53ac 100644
--- a/qga/main.c
+++ b/qga/main.c
@@ -1563,7 +1563,7 @@ static void cleanup_agent(GAState *s)
 static int run_agent_once(GAState *s)
 {
     if (!s->channel &&
-        channel_init(s, s->config->method, s->config->channel_path,
+        !channel_init(s, s->config->method, s->config->channel_path,
                      s->socket_activation ? FIRST_SOCKET_ACTIVATION_FD : -1)) {
         g_critical("failed to initialize guest agent channel");
         return EXIT_FAILURE;
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PULL v2 6/9] qga: ignore channel_init() fail if 'retry_path' is set
  2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
                   ` (4 preceding siblings ...)
  2025-09-01 11:24 ` [PULL v2 5/9] qga: Fix channel initialization check in run_agent_once Kostiantyn Kostiuk
@ 2025-09-01 11:24 ` Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 7/9] qga-vss: Write hex value of error in log Kostiantyn Kostiuk
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Kostiantyn Kostiuk @ 2025-09-01 11:24 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Richard Henderson

On Windows, we run QGA with `-d --retry-path` options by default,
and expect that QGA will start even without the vioserial driver
and will wait for communication forever.

Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250825140549.146617-3-kkostiuk@redhat.com
Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
---
 qga/main.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/qga/main.c b/qga/main.c
index a1bf8f53ac..dd1c216f9a 100644
--- a/qga/main.c
+++ b/qga/main.c
@@ -1512,8 +1512,12 @@ static GAState *initialize_agent(GAConfig *config, int socket_activation)
 
     if (!channel_init(s, s->config->method, s->config->channel_path,
                       s->socket_activation ? FIRST_SOCKET_ACTIVATION_FD : -1)) {
-        g_critical("failed to initialize guest agent channel");
-        return NULL;
+        if (s->config->retry_path) {
+            g_info("failed to initialize guest agent channel, will retry");
+        } else {
+            g_critical("failed to initialize guest agent channel");
+            return NULL;
+        }
     }
 
     if (config->daemonize) {
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PULL v2 7/9] qga-vss: Write hex value of error in log
  2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
                   ` (5 preceding siblings ...)
  2025-09-01 11:24 ` [PULL v2 6/9] qga: ignore channel_init() fail if 'retry_path' is set Kostiantyn Kostiuk
@ 2025-09-01 11:24 ` Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 8/9] qga/installer: Remove QGA VSS if QGA installation failed Kostiantyn Kostiuk
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Kostiantyn Kostiuk @ 2025-09-01 11:24 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Richard Henderson

QGA-VSS writes error using error_setg_win32_internal,
which call g_win32_error_message.

g_win32_error_message - translate a Win32 error code
(as returned by GetLastError()) into the corresponding message.

In the same time, we call error_setg_win32_internal with
error codes from different Windows componets like VSS or
Performance monitor that provides different codes and
can't be converted with g_win32_error_message. In this
case, the empty suffix will be returned so error will be
masked.

This commit directly add hex value of error code.

Reproduce:
 - Run QGA command: {"execute": "guest-fsfreeze-freeze-list", "arguments": {"mountpoints": ["D:"]}}

QGA error example:
 - before changes:
  {"error": {"class": "GenericError", "desc": "failed to add D: to snapshot set: "}}
 - after changes:
  {"error": {"class": "GenericError", "desc": "failed to add D: to snapshot set: Windows error 0x8004230e: "}}

Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250825135311.138330-1-kkostiuk@redhat.com
Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
---
 qga/vss-win32/requester.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp
index bc260abb96..5615955b6f 100644
--- a/qga/vss-win32/requester.cpp
+++ b/qga/vss-win32/requester.cpp
@@ -28,8 +28,9 @@
 
 #define err_set(e, err, fmt, ...) {                                         \
     (e)->error_setg_win32_wrapper((e)->errp, __FILE__, __LINE__, __func__,  \
-                                   err, fmt, ## __VA_ARGS__);               \
-    qga_debug(fmt, ## __VA_ARGS__);                                         \
+                                   err, fmt ": Windows error 0x%lx",        \
+                                   ## __VA_ARGS__, err);                    \
+    qga_debug(fmt ": Windows error 0x%lx", ## __VA_ARGS__, err);            \
 }
 /* Bad idea, works only when (e)->errp != NULL: */
 #define err_is_set(e) ((e)->errp && *(e)->errp)
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PULL v2 8/9] qga/installer: Remove QGA VSS if QGA installation failed
  2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
                   ` (6 preceding siblings ...)
  2025-09-01 11:24 ` [PULL v2 7/9] qga-vss: Write hex value of error in log Kostiantyn Kostiuk
@ 2025-09-01 11:24 ` Kostiantyn Kostiuk
  2025-09-01 11:24 ` [PULL v2 9/9] qga: Fix truncated output handling in guest-exec status reporting Kostiantyn Kostiuk
  2025-09-02 13:47 ` [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Richard Henderson
  9 siblings, 0 replies; 11+ messages in thread
From: Kostiantyn Kostiuk @ 2025-09-01 11:24 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Richard Henderson

When QGA Installer failed to install QGA service but install
QGA VSS provider, provider should be removed before installer
exits. Otherwise QGA VSS will has broken infomation and
prevent QGA installation in next run.

Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250825143155.160913-1-kkostiuk@redhat.com
Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
---
 qga/installer/qemu-ga.wxs | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs
index df572adb4a..32b8308728 100644
--- a/qga/installer/qemu-ga.wxs
+++ b/qga/installer/qemu-ga.wxs
@@ -151,6 +151,14 @@
               Return="check"
               >
     </CustomAction>
+    <CustomAction Id="UnRegisterCom_Rollback"
+              ExeCommand='"[qemu_ga_directory]qga-vss.dll",DLLCOMUnregister'
+              Execute="rollback"
+              Property="rundll"
+              Impersonate="no"
+              Return="check"
+              >
+    </CustomAction>
     <?endif?>
 
     <Feature Id="QEMUFeature" Title="QEMU Guest Agent" Level="1">
@@ -174,8 +182,19 @@
 
     <InstallExecuteSequence>
       <?ifdef var.InstallVss?>
-      <Custom Action="UnRegisterCom" After="StopServices">Installed</Custom>
-      <Custom Action="RegisterCom" After="InstallServices">NOT REMOVE</Custom>
+        <!-- Use explicit Sequence number to provide an absolute position in the sequence-->
+        <!-- This is needed to set "UnRegisterCom_Rollback" before "RegisterCom" and after "InstallFiles"-->
+        <!-- but, Wix detect this double condition incorrectly -->
+
+        <!-- UnRegisterCom_Rollback (for install rollback): at 5849, right before RegisterCom (5850)-->
+        <!-- Runs only if the installation fails and rolls back-->
+        <Custom Action="UnRegisterCom_Rollback" Sequence="5849">NOT REMOVE</Custom>
+
+        <!-- RegisterCom (for install): at 5850, right after InstallFiles (5849) (old: After="InstallServices")-->
+        <Custom Action="RegisterCom" Sequence="5850">NOT REMOVE</Custom>
+
+        <!-- UnRegisterCom (for uninstall): at 1901, right after StopServices (1900) (old: After="StopServices")-->
+        <Custom Action="UnRegisterCom" Sequence="1901">Installed</Custom>
       <?endif?>
     </InstallExecuteSequence>
   </Product>
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PULL v2 9/9] qga: Fix truncated output handling in guest-exec status reporting
  2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
                   ` (7 preceding siblings ...)
  2025-09-01 11:24 ` [PULL v2 8/9] qga/installer: Remove QGA VSS if QGA installation failed Kostiantyn Kostiuk
@ 2025-09-01 11:24 ` Kostiantyn Kostiuk
  2025-09-02 13:47 ` [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Richard Henderson
  9 siblings, 0 replies; 11+ messages in thread
From: Kostiantyn Kostiuk @ 2025-09-01 11:24 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Richard Henderson

From: "minglei.liu" <minglei.liu@smartx.com>

Signed-off-by: minglei.liu <minglei.liu@smartx.com>
Fixes: a1853dca743
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250711021714.91258-1-minglei.liu@smartx.com
Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
---
 qga/commands.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/qga/commands.c b/qga/commands.c
index 5a5fad31f8..5f20af25d3 100644
--- a/qga/commands.c
+++ b/qga/commands.c
@@ -205,13 +205,15 @@ GuestExecStatus *qmp_guest_exec_status(int64_t pid, Error **errp)
 #endif
         if (gei->out.length > 0) {
             ges->out_data = g_base64_encode(gei->out.data, gei->out.length);
-            ges->has_out_truncated = gei->out.truncated;
+            ges->has_out_truncated = true;
+            ges->out_truncated = gei->out.truncated;
         }
         g_free(gei->out.data);
 
         if (gei->err.length > 0) {
             ges->err_data = g_base64_encode(gei->err.data, gei->err.length);
-            ges->has_err_truncated = gei->err.truncated;
+            ges->has_err_truncated = true;
+            ges->err_truncated = gei->err.truncated;
         }
         g_free(gei->err.data);
 
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PULL v2 0/9] Misc QGA fixes for 2025-08-29
  2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
                   ` (8 preceding siblings ...)
  2025-09-01 11:24 ` [PULL v2 9/9] qga: Fix truncated output handling in guest-exec status reporting Kostiantyn Kostiuk
@ 2025-09-02 13:47 ` Richard Henderson
  9 siblings, 0 replies; 11+ messages in thread
From: Richard Henderson @ 2025-09-02 13:47 UTC (permalink / raw)
  To: Kostiantyn Kostiuk, qemu-devel, Peter Maydell, Stefan Hajnoczi

On 9/1/25 21:24, Kostiantyn Kostiuk wrote:
> The following changes since commit e771ba98de25c9f43959f79fc7099cf7fbba44cc:
> 
>    Open 10.2 development tree (2025-08-26 14:10:25 -0400)
> 
> are available in the Git repository at:
> 
>    https://github.com/kostyanf14/qemu.git tags/qga-pull-2025-08-29-v2
> 
> for you to fetch changes up to 28c5d27dd4dc4100a96ff4c9e5871dd23c6b02ec:
> 
>    qga: Fix truncated output handling in guest-exec status reporting (2025-09-01 14:02:18 +0300)
> 
> ----------------------------------------------------------------
> qga-pull-2025-08-29-v2
> 
> 
> v2 -> v1: Fix author of commit
> v1:https://lists.gnu.org/archive/html/qemu-devel/2025-08/msg04615.html


Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/10.2 as appropriate.

r~


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-09-02 13:48 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-01 11:24 [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Kostiantyn Kostiuk
2025-09-01 11:24 ` [PULL v2 1/9] qga: Fix ubsan warning Kostiantyn Kostiuk
2025-09-01 11:24 ` [PULL v2 2/9] qga: fix potentially not initialized nr_volumes in qga_vss_fsfreeze() Kostiantyn Kostiuk
2025-09-01 11:24 ` [PULL v2 3/9] qga-vss: Replace asserts with condition and report error Kostiantyn Kostiuk
2025-09-01 11:24 ` [PULL v2 4/9] qga-vss: Remove unused dependencies Kostiantyn Kostiuk
2025-09-01 11:24 ` [PULL v2 5/9] qga: Fix channel initialization check in run_agent_once Kostiantyn Kostiuk
2025-09-01 11:24 ` [PULL v2 6/9] qga: ignore channel_init() fail if 'retry_path' is set Kostiantyn Kostiuk
2025-09-01 11:24 ` [PULL v2 7/9] qga-vss: Write hex value of error in log Kostiantyn Kostiuk
2025-09-01 11:24 ` [PULL v2 8/9] qga/installer: Remove QGA VSS if QGA installation failed Kostiantyn Kostiuk
2025-09-01 11:24 ` [PULL v2 9/9] qga: Fix truncated output handling in guest-exec status reporting Kostiantyn Kostiuk
2025-09-02 13:47 ` [PULL v2 0/9] Misc QGA fixes for 2025-08-29 Richard Henderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).