]> git.proxmox.com Git - swtpm.git/commitdiff
swtpm_setup: Report stderr as returned by external tool (swtpm-localcal)
authorStefan Berger <stefanb@linux.ibm.com>
Tue, 19 Oct 2021 11:10:44 +0000 (07:10 -0400)
committerStefan Berger <stefanb@us.ibm.com>
Tue, 19 Oct 2021 12:37:58 +0000 (08:37 -0400)
Report the error printed out via stderr as returned by swtpm-localca for
example.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
src/swtpm_setup/swtpm_setup.c

index 9e5563168214e7a39b2e43c25a9e65534824379a..3099e6487c0bfae19fbfc6aab3f79e8a660abb79 100644 (file)
@@ -246,6 +246,7 @@ static int call_create_certs(unsigned long flags, const gchar *configfile, const
         for (idx = 0; flags_to_certfiles[idx].filename != NULL; idx++) {
             if (flags & flags_to_certfiles[idx].flag) {
                 g_autofree gchar *standard_output = NULL;
+                g_autofree gchar *standard_error = NULL;
                 GError *error = NULL;
                 gchar **lines;
 
@@ -255,8 +256,8 @@ static int call_create_certs(unsigned long flags, const gchar *configfile, const
                 logit(gl_LOGFILE, "  Invoking %s\n", s);
                 g_free(s);
 
-                success = g_spawn_sync(NULL, cmd, NULL, G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL,
-                                       &standard_output, NULL, &exit_status, &error);
+                success = g_spawn_sync(NULL, cmd, NULL, 0, NULL, NULL,
+                                       &standard_output, &standard_error, &exit_status, &error);
                 if (!success) {
                     logerr(gl_LOGFILE, "An error occurred running %s: %s\n",
                            create_certs_tool, error->message);
@@ -265,7 +266,7 @@ static int call_create_certs(unsigned long flags, const gchar *configfile, const
                     break;
                 } else if (exit_status != 0) {
                     logerr(gl_LOGFILE, "%s exit with status %d: %s\n",
-                           prgname, exit_status, standard_output);
+                           prgname, WEXITSTATUS(exit_status), standard_error);
                     ret = 1;
                     break;
                 }
@@ -279,6 +280,8 @@ static int call_create_certs(unsigned long flags, const gchar *configfile, const
 
                 g_free(standard_output);
                 standard_output = NULL;
+                g_free(standard_error);
+                standard_error = NULL;
             }
         }
     }