[PATCH] fix unlikely NULL pointer deref in kallsyms

From: Jesper Juhl
Date: Thu Mar 09 2006 - 16:45:52 EST



The Coverity checker noticed that kallsyms may dereference a NULL pointer
(in two places) in the function write_src() if malloc() fails.
In addition, malloc() returns a void*, so there's no need to cast the
return value.

The amount requested is small, so this is unlikely to happen, but not
impossible.

To fix the problem, if malloc() should fail, print a descriptive error and
exit.
A lot better than just dereferencing a NULL pointer and crashing.

This fixes coverity bug #398


Signed-off-by: Jesper Juhl <jesper.juhl@xxxxxxxxx>
---

scripts/kallsyms.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletion(-)

--- linux-2.6.16-rc5-git12-orig/scripts/kallsyms.c 2006-01-03 04:21:10.000000000 +0100
+++ linux-2.6.16-rc5-git12/scripts/kallsyms.c 2006-03-09 22:41:17.000000000 +0100
@@ -272,7 +272,12 @@ static void write_src(void)

/* table of offset markers, that give the offset in the compressed stream
* every 256 symbols */
- markers = (unsigned int *) malloc(sizeof(unsigned int) * ((table_cnt + 255) / 256));
+ markers = malloc(sizeof(unsigned int) * ((table_cnt + 255) / 256));
+ if (!markers) {
+ fprintf(stderr, "kallsyms failure: "
+ "unable to allocate required memory\n");
+ exit(EXIT_FAILURE);
+ }

output_label("kallsyms_names");
off = 0;



-
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/