summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSunil Muthuswamy2020-10-24 11:14:38 +0200
committerPaolo Bonzini2020-10-26 12:08:39 +0100
commit7a3b7f6b94e16c0526587853a2cc954387882389 (patch)
tree55af16abaa276ed76d8bd9735cf6f53177ff0398
parentWHPX: Fix WHPX build break (diff)
downloadqemu-7a3b7f6b94e16c0526587853a2cc954387882389.tar.gz
qemu-7a3b7f6b94e16c0526587853a2cc954387882389.tar.xz
qemu-7a3b7f6b94e16c0526587853a2cc954387882389.zip
win32: boot broken when bind & data dir are the same
With upstream commit#ea1edcd7da1a "vl: relocate paths to data directories", the data dir logic was unified between POSIX & Win32. That patch moved to using 'get_relocated_path()', to find the data dir. There is a latent bug in get_relocated_path which can cause it to spin indefinitely, when the bind dir is the same as the passed in dir (in this case, it was the data dir). Signed-off-by: Sunil Muthuswamy <sunilmut@microsoft.com> Message-Id: <SN4PR2101MB08802BF242C429A15DDB32ACC01B0@SN4PR2101MB0880.namprd21.prod.outlook.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--util/cutils.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/util/cutils.c b/util/cutils.c
index be4e43a9ef..c395974fab 100644
--- a/util/cutils.c
+++ b/util/cutils.c
@@ -949,7 +949,7 @@ char *get_relocated_path(const char *dir)
bindir += len_bindir;
dir = next_component(dir, &len_dir);
bindir = next_component(bindir, &len_bindir);
- } while (len_dir == len_bindir && !memcmp(dir, bindir, len_dir));
+ } while (len_dir && len_dir == len_bindir && !memcmp(dir, bindir, len_dir));
/* Ascend from bindir to the common prefix with dir. */
while (len_bindir) {