[PATCH 1/1] wait: using uninitialized member of wait queue

From: Evgeny Kuznetsov
Date: Tue Oct 05 2010 - 04:52:44 EST


From: Evgeny Kuznetsov <ext-eugeny.kuznetsov@xxxxxxxxx>

Member "flags" of "wait_queue_t" struct is used in several places in
kernel code without beeing initialized. "flags" is used in bitwise operations.
If "flags" not initialized then unexpected behaviour may have place.
Incorrect flags maybe used later in code.
Struct "wait_queue_t" is initialized in function "init_wait()". But
"init_wait()" do not initialize "flag" member.
Added initialization of "wait_queue_t.flags" with zero value into "init_wait".

Signed-off-by: Evgeny Kuznetsov <EXT-Eugeny.Kuznetsov@xxxxxxxxx>
---
include/linux/wait.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/linux/wait.h b/include/linux/wait.h
index 0836ccc..3efc9f3 100644
--- a/include/linux/wait.h
+++ b/include/linux/wait.h
@@ -614,6 +614,7 @@ int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
(wait)->private = current; \
(wait)->func = autoremove_wake_function; \
INIT_LIST_HEAD(&(wait)->task_list); \
+ (wait)->flags = 0; \
} while (0)

/**
--
1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/