qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH] keyboard: fix qemu load empty keymap


From: Wang Xin
Subject: [Qemu-devel] [PATCH] keyboard: fix qemu load empty keymap
Date: Thu, 3 Nov 2016 13:56:00 +0800

qemu_find_file do not check file is a directory or just a file.
If qemu start with "-k ''", qemu_find_file get a empty string
as keymap file name, then, qemu treat the keymap path as keymap
file, it makes vnc keyboard input unusable.

Signed-off-by: Wang Xin <address@hidden>

diff --git a/vl.c b/vl.c
index ebd47af..2ec3832 100644
--- a/vl.c
+++ b/vl.c
@@ -2264,6 +2264,7 @@ char *qemu_find_file(int type, const char *name)
     int i;
     const char *subdir;
     char *buf;
+    struct stat file_stat;
 
     /* Try the name as a straight path first */
     if (access(name, R_OK) == 0) {
@@ -2284,7 +2285,13 @@ char *qemu_find_file(int type, const char *name)
 
     for (i = 0; i < data_dir_idx; i++) {
         buf = g_strdup_printf("%s/%s%s", data_dir[i], subdir, name);
-        if (access(buf, R_OK) == 0) {
+        if (stat(buf, &file_stat) < 0) {
+            error_report("can not get file '%s' stat: %s\n", buf,
+                         strerror(errno));
+            g_free(buf);
+            return NULL;
+        }
+        if (!S_ISDIR(file_stat.st_mode) && access(buf, R_OK) == 0) {
             trace_load_file(name, buf);
             return buf;
         }
-- 
2.8.1.windows.1





reply via email to

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