[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/5] monitor: Fix file_completion() to check for sta
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PATCH 5/5] monitor: Fix file_completion() to check for stat() failure |
Date: |
Thu, 17 Nov 2011 13:03:38 +0000 |
From: Markus Armbruster <address@hidden>
stat() can fail for a file name just read with readdir(). Easiest way
to trigger is a dangling symbolic link --- look ma, no race! When it
fails, file_completion() uses sb.st_mode uninitialized. If the
directory bit happens to be set, it appends a "/" to the completed
name.
Signed-off-by: Markus Armbruster <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
monitor.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/monitor.c b/monitor.c
index 5ea35de..1be222e 100644
--- a/monitor.c
+++ b/monitor.c
@@ -4207,9 +4207,9 @@ static void file_completion(const char *input)
/* stat the file to find out if it's a directory.
* In that case add a slash to speed up typing long paths
*/
- stat(file, &sb);
- if(S_ISDIR(sb.st_mode))
+ if (stat(file, &sb) == 0 && S_ISDIR(sb.st_mode)) {
pstrcat(file, sizeof(file), "/");
+ }
readline_add_completion(cur_mon->rs, file);
}
}
--
1.7.7.1
- [Qemu-devel] [PULL 1.0 0/5] Trivial patches for 11 to 17 November 2011, Stefan Hajnoczi, 2011/11/17
- [Qemu-devel] [PATCH 1/5] Fix spelling in documentation and comments (similiar -> similar), Stefan Hajnoczi, 2011/11/17
- [Qemu-devel] [PATCH 3/5] Fix typo: runnning -> running, Stefan Hajnoczi, 2011/11/17
- [Qemu-devel] [PATCH 5/5] monitor: Fix file_completion() to check for stat() failure,
Stefan Hajnoczi <=
- [Qemu-devel] [PATCH 4/5] Fixing some spelling in docs/libcacard.txt, Stefan Hajnoczi, 2011/11/17
- [Qemu-devel] [PATCH 2/5] Fix some spelling bugs in documentation and comments, Stefan Hajnoczi, 2011/11/17
- Re: [Qemu-devel] [PULL 1.0 0/5] Trivial patches for 11 to 17 November 2011, Anthony Liguori, 2011/11/21