Migraiton Pull request
Hi This pull requests include: - use-after-free in test-vmstate (eric) - fix exec migration in windows (berberian) Please apply. -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmQAynUACgkQ9IfvGFhy 1yMAKhAAyLAVSDvCh8uRvAZ4sHzZTmCuvMpGol8wromFta9Ub0vLqcK8F3neYERb xsRmYxcfaGR0dcf4j8CNAdUjO3NJjiSlWFqFYizIWZNQ2Hotgfkizxifk7l1eRO5 L4TvOcdS0oRAgwLvcE9SDjtRMYwCBey/opgQCAaWWVk/NLDEYKNOuPNSdrpPhMPL LBBPNj1ATmKYPGxsdm3U8VwFu9VuevmQ9AxEhW4Euf9Ex0Ie+hxGjHZmzrJrbYUL 3p2cyu/ShU3MxsKowgmFnDkL3zyihYPAKhb1YJ+csRLFJX/zKVJcH7ZVzJOSR3GQ ZoksI1RciwBfbl1IVD+TgrZrZnFd5ltto3zxSrjLFFnB4lhtg5bUDwMG8/o5qx3d YaJOaeTJbmqd+SRPxrqbLWWGpsXUJc1rEVcYh2rclyOxvwda1xJrl7/2N2ZeS6VD GO7FhcaprpxvLF+WYmhuCIS3RbOC35/Hx11bgQL8da8lxPQsOfsPTkRpzeWa4exX ET+fqvlQp8ApHDVF/VA8vD31brSv3moL6GmVnZeT/Fi5xa7Ntb3Mnn5DkDoXgSKo DQjie+ZTRJ/E4VbY53FAeUh4M3OPf5NaZyzgx3K68XMZJ6THiLmwqDa/vO53Q0QP kMNVYAA9FbBFIozDpa2l+fCNxaawKqVBK4yYoEBZcBLYjb+7540= =fku0 -----END PGP SIGNATURE----- Merge tag 'migration-20230302-pull-request' of https://gitlab.com/juan.quintela/qemu into staging Migraiton Pull request Hi This pull requests include: - use-after-free in test-vmstate (eric) - fix exec migration in windows (berberian) Please apply. # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmQAynUACgkQ9IfvGFhy # 1yMAKhAAyLAVSDvCh8uRvAZ4sHzZTmCuvMpGol8wromFta9Ub0vLqcK8F3neYERb # xsRmYxcfaGR0dcf4j8CNAdUjO3NJjiSlWFqFYizIWZNQ2Hotgfkizxifk7l1eRO5 # L4TvOcdS0oRAgwLvcE9SDjtRMYwCBey/opgQCAaWWVk/NLDEYKNOuPNSdrpPhMPL # LBBPNj1ATmKYPGxsdm3U8VwFu9VuevmQ9AxEhW4Euf9Ex0Ie+hxGjHZmzrJrbYUL # 3p2cyu/ShU3MxsKowgmFnDkL3zyihYPAKhb1YJ+csRLFJX/zKVJcH7ZVzJOSR3GQ # ZoksI1RciwBfbl1IVD+TgrZrZnFd5ltto3zxSrjLFFnB4lhtg5bUDwMG8/o5qx3d # YaJOaeTJbmqd+SRPxrqbLWWGpsXUJc1rEVcYh2rclyOxvwda1xJrl7/2N2ZeS6VD # GO7FhcaprpxvLF+WYmhuCIS3RbOC35/Hx11bgQL8da8lxPQsOfsPTkRpzeWa4exX # ET+fqvlQp8ApHDVF/VA8vD31brSv3moL6GmVnZeT/Fi5xa7Ntb3Mnn5DkDoXgSKo # DQjie+ZTRJ/E4VbY53FAeUh4M3OPf5NaZyzgx3K68XMZJ6THiLmwqDa/vO53Q0QP # kMNVYAA9FbBFIozDpa2l+fCNxaawKqVBK4yYoEBZcBLYjb+7540= # =fku0 # -----END PGP SIGNATURE----- # gpg: Signature made Thu 02 Mar 2023 16:10:29 GMT # gpg: using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723 # gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [full] # gpg: aka "Juan Quintela <quintela@trasno.org>" [full] # Primary key fingerprint: 1899 FF8E DEBF 58CC EE03 4B82 F487 EF18 5872 D723 * tag 'migration-20230302-pull-request' of https://gitlab.com/juan.quintela/qemu: Fix exec migration on Windows (w32+w64). test-vmstate: fix bad GTree usage, use-after-free Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
43b79f3b86
|
@ -23,12 +23,31 @@
|
|||
#include "migration.h"
|
||||
#include "io/channel-command.h"
|
||||
#include "trace.h"
|
||||
#include "qemu/cutils.h"
|
||||
|
||||
#ifdef WIN32
|
||||
const char *exec_get_cmd_path(void);
|
||||
const char *exec_get_cmd_path(void)
|
||||
{
|
||||
g_autofree char *detected_path = g_new(char, MAX_PATH);
|
||||
if (GetSystemDirectoryA(detected_path, MAX_PATH) == 0) {
|
||||
warn_report("Could not detect cmd.exe path, using default.");
|
||||
return "C:\\Windows\\System32\\cmd.exe";
|
||||
}
|
||||
pstrcat(detected_path, MAX_PATH, "\\cmd.exe");
|
||||
return g_steal_pointer(&detected_path);
|
||||
}
|
||||
#endif
|
||||
|
||||
void exec_start_outgoing_migration(MigrationState *s, const char *command, Error **errp)
|
||||
{
|
||||
QIOChannel *ioc;
|
||||
|
||||
#ifdef WIN32
|
||||
const char *argv[] = { exec_get_cmd_path(), "/c", command, NULL };
|
||||
#else
|
||||
const char *argv[] = { "/bin/sh", "-c", command, NULL };
|
||||
#endif
|
||||
|
||||
trace_migration_exec_outgoing(command);
|
||||
ioc = QIO_CHANNEL(qio_channel_command_new_spawn(argv,
|
||||
|
@ -55,7 +74,12 @@ static gboolean exec_accept_incoming_migration(QIOChannel *ioc,
|
|||
void exec_start_incoming_migration(const char *command, Error **errp)
|
||||
{
|
||||
QIOChannel *ioc;
|
||||
|
||||
#ifdef WIN32
|
||||
const char *argv[] = { exec_get_cmd_path(), "/c", command, NULL };
|
||||
#else
|
||||
const char *argv[] = { "/bin/sh", "-c", command, NULL };
|
||||
#endif
|
||||
|
||||
trace_migration_exec_incoming(command);
|
||||
ioc = QIO_CHANNEL(qio_channel_command_new_spawn(argv,
|
||||
|
|
|
@ -1073,7 +1073,6 @@ static gboolean diff_tree(gpointer key, gpointer value, gpointer data)
|
|||
struct match_node_data d = {tp->tree2, key, value};
|
||||
|
||||
g_tree_foreach(tp->tree2, tp->match_node, &d);
|
||||
g_tree_remove(tp->tree1, key);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1082,9 +1081,9 @@ static void compare_trees(GTree *tree1, GTree *tree2,
|
|||
{
|
||||
struct tree_cmp_data tp = {tree1, tree2, function};
|
||||
|
||||
assert(g_tree_nnodes(tree1) == g_tree_nnodes(tree2));
|
||||
g_tree_foreach(tree1, diff_tree, &tp);
|
||||
assert(g_tree_nnodes(tree1) == 0);
|
||||
assert(g_tree_nnodes(tree2) == 0);
|
||||
g_tree_destroy(g_tree_ref(tree1));
|
||||
}
|
||||
|
||||
static void diff_domain(TestGTreeDomain *d1, TestGTreeDomain *d2)
|
||||
|
|
Loading…
Reference in New Issue