[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] util/cutils: Skip "." when looking for next directory compon

From: Paolo Bonzini
Subject: Re: [PATCH] util/cutils: Skip "." when looking for next directory component
Date: Tue, 9 Feb 2021 10:20:32 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0

On 08/02/21 21:57, Stefan Weil wrote:
When looking for the next directory component, a "." component is now skipped.

This fixes the path(s) used for firmware lookup for the prefix == bindir case
which is standard for QEMU on Windows and where the internally
used bindir value ends with "/.".

Signed-off-by: Stefan Weil <sw@weilnetz.de>

This patch is required for Windows to get the firmware access right,
but would also be needed for Linux with --bindir=/usr/local which
currently results in a search path like /usr/local/../share/qemu-firmware.

I noticed that qemu-firmware is not used during the installation.
What is the purpose of that extra search path?


  util/cutils.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/util/cutils.c b/util/cutils.c
index 0b5073b330..70c7d6efbd 100644
--- a/util/cutils.c
+++ b/util/cutils.c
@@ -916,7 +916,8 @@ static inline bool starts_with_prefix(const char *dir)
  static inline const char *next_component(const char *dir, int *p_len)
      int len;
-    while (*dir && G_IS_DIR_SEPARATOR(*dir)) {
+    while ((*dir && G_IS_DIR_SEPARATOR(*dir)) ||
+           (*dir == '.' && (G_IS_DIR_SEPARATOR(dir[1]) || dir[1] == '\0'))) {
      len = 0;

Queued, thanks.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]