summary refs log tree commit diff
path: root/usr/gen_init_cpio.c
diff options
context:
space:
mode:
authorJesper Juhl <jesper.juhl@gmail.com>2006-04-18 22:21:54 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-04-19 09:13:52 -0700
commitaa1e816fc92215f94bdfd90107baae8fdc2440d1 (patch)
tree1d520ff39b65a7d3a5f68008eb44ea15c63e0d96 /usr/gen_init_cpio.c
parent9dfb563b07b1aafcd7d40528ebfa7f9ce28f0556 (diff)
downloadlinux-aa1e816fc92215f94bdfd90107baae8fdc2440d1.tar.gz
[PATCH] Fix potential NULL pointer deref in gen_init_cpio
Fix potential NULL pointer deref in gen_init_cpio.c spotted by coverity
checker.  This fixes coverity bug #86

Without this patch we risk dereferencing a NULL `type' in the
"if ('\n' == *type) {" line.

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'usr/gen_init_cpio.c')
-rw-r--r--usr/gen_init_cpio.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/usr/gen_init_cpio.c b/usr/gen_init_cpio.c
index 33dbcbf77c5b..83acd6cc0b3c 100644
--- a/usr/gen_init_cpio.c
+++ b/usr/gen_init_cpio.c
@@ -471,6 +471,7 @@ int main (int argc, char *argv[])
 				"ERROR: incorrect format, could not locate file type line %d: '%s'\n",
 				line_nr, line);
 			ec = -1;
+			break;
 		}
 
 		if ('\n' == *type) {
@@ -506,7 +507,8 @@ int main (int argc, char *argv[])
 				line_nr, line);
 		}
 	}
-	cpio_trailer();
+	if (ec == 0)
+		cpio_trailer();
 
 	exit(ec);
 }