[PATCH] hotkey: check lstat() return value rather
Colin King
colin.king at canonical.com
Tue May 7 00:44:20 UTC 2013
From: Colin Ian King <colin.king at canonical.com>
Coverity CID #997313, Unchecked return value from library
Check return from lstat rather than blindly accepting that
it always works.
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
src/hotkey/hotkey/hotkey.c | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/src/hotkey/hotkey/hotkey.c b/src/hotkey/hotkey/hotkey.c
index ff3c669..381f029 100644
--- a/src/hotkey/hotkey/hotkey.c
+++ b/src/hotkey/hotkey/hotkey.c
@@ -154,19 +154,20 @@ static char *hotkey_find_keyboard(char *path)
if (strlen(entry->d_name) > 3) {
snprintf(filename, sizeof(filename), "%s/%s",
path, entry->d_name);
- lstat(filename, &statbuf);
- if (S_ISDIR(statbuf.st_mode)) {
- if (!S_ISLNK(statbuf.st_mode))
- if ((dev = hotkey_find_keyboard(filename)) != NULL)
- break;
- } else {
- if ((data = fwts_get(filename)) != NULL) {
- if (strncmp(data, AT_KEYBOARD, sizeof(AT_KEYBOARD)-1) == 0) {
- dev = hotkey_device(path);
+ if (lstat(filename, &statbuf) == 0) {
+ if (S_ISDIR(statbuf.st_mode)) {
+ if (!S_ISLNK(statbuf.st_mode))
+ if ((dev = hotkey_find_keyboard(filename)) != NULL)
+ break;
+ } else {
+ if ((data = fwts_get(filename)) != NULL) {
+ if (strncmp(data, AT_KEYBOARD, sizeof(AT_KEYBOARD)-1) == 0) {
+ dev = hotkey_device(path);
+ free(data);
+ break;
+ }
free(data);
- break;
}
- free(data);
}
}
}
--
1.8.1.2
More information about the fwts-devel
mailing list