summary refs log tree commit diff stats
path: root/migration-exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'migration-exec.c')
-rw-r--r--migration-exec.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/migration-exec.c b/migration-exec.c
index a051a6e668..5dc73139a4 100644
--- a/migration-exec.c
+++ b/migration-exec.c
@@ -59,19 +59,17 @@ static int exec_close(MigrationState *s)
 
 void exec_start_outgoing_migration(MigrationState *s, const char *command, Error **errp)
 {
-    FILE *f;
-
-    f = popen(command, "w");
+    QEMUFile *f;
+    f = qemu_popen_cmd(command, "w");
     if (f == NULL) {
         error_setg_errno(errp, errno, "failed to popen the migration target");
         return;
     }
 
-    s->fd = fileno(f);
+    s->opaque = f;
+    s->fd = qemu_get_fd(f);
     assert(s->fd != -1);
 
-    s->opaque = qemu_popen(f, "w");
-
     s->close = exec_close;
     s->get_error = file_errno;
     s->write = file_write;