Messages in this thread Patch in this message | | | From | Marcin Slusarz <> | Subject | [PATCH 6/6] ERR_PTR: warn when ERR_PTR parameter is not errno value | Date | Mon, 19 May 2008 00:04:33 +0200 |
| |
Check at runtime whether error argument of ERR_PTR and ERR_OR_0_PTR is valid. It can catch bugs which possibly lead to oops or panic earlier.
Currently there are > 600 calls of ERR_PTR with non-constant argument in Linux kernel sources.
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> --- include/linux/err.h | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/include/linux/err.h b/include/linux/err.h index cdec8b6..51e2459 100644 --- a/include/linux/err.h +++ b/include/linux/err.h @@ -3,6 +3,7 @@ #include <linux/compiler.h> +#include <asm/bug.h> #include <asm/errno.h> /* @@ -21,6 +22,7 @@ static inline void *__ERR_PTR(long error) { + WARN_ON(!IS_ERR_VALUE(error)); return (void *) error; } @@ -28,6 +30,7 @@ static inline void *__ERR_PTR(long error) static inline void *__ERR_OR_0_PTR(long error) { + WARN_ON(!IS_ERR_VALUE(error) && error); return (void *) error; } -- 1.5.4.5
| |