Add more input checks. From "nobody@example.com" through OpenBSD bug list. 80/9580/1
authorMatthieu Herrb <matthieu.herrb@laas.fr>
Fri, 30 Jan 2009 10:58:40 +0000 (11:58 +0100)
committerSung-Jin Park <sj76.park@samsung.com>
Tue, 3 Sep 2013 04:25:50 +0000 (00:25 -0400)
Change-Id: I056474a8ccc426369dea7b97c2765079dc2aac34

xwud.c

diff --git a/xwud.c b/xwud.c
index d2c463d..1c83b7b 100644 (file)
--- a/xwud.c
+++ b/xwud.c
@@ -274,6 +274,8 @@ main(int argc, char *argv[])
 
     /* alloc window name */
     win_name_size = (header.header_size - SIZEOF(XWDheader));
+    if (win_name_size < 1)
+      Error("win_name_size");
     if((win_name = malloc((unsigned) win_name_size + 6)) == NULL)
       Error("Can't malloc window name storage.");
     strcpy(win_name, "xwud: ");
@@ -281,6 +283,7 @@ main(int argc, char *argv[])
      /* read in window name */
     if(!Read(win_name + 6, sizeof(char), win_name_size, in_file))
       Error("Unable to read window name from dump file.");
+    (win_name + 6)[win_name_size - 1] = 0;
 
     if (dump_header) {
        DumpHeader(&header, win_name);