summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVinson Lee <[email protected]>2010-01-10 00:40:46 -0800
committerVinson Lee <[email protected]>2010-01-10 00:40:46 -0800
commit0c7814fe238fe0e2bbeff448c32f79146f9ae923 (patch)
tree8e53f5c688f083c09f0530beccc57387590f63f4
parent9e98c1fbf6fef97e017c7b308d0772604ea7a614 (diff)
progs/demos: Bounds check input to fire.c.
-rw-r--r--progs/demos/fire.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/progs/demos/fire.c b/progs/demos/fire.c
index f30b893dbf3..475582c81ba 100644
--- a/progs/demos/fire.c
+++ b/progs/demos/fire.c
@@ -726,8 +726,13 @@ main(int ac, char **av)
maxage = 1.0 / dt;
- if (ac == 2)
+ if (ac == 2) {
np = atoi(av[1]);
+ if (np <= 0 || np > 1000000) {
+ fprintf(stderr, "Invalid input.\n");
+ exit(-1);
+ }
+ }
if (ac == 4) {
WIDTH = atoi(av[2]);
@@ -762,6 +767,7 @@ main(int ac, char **av)
assert(np > 0);
p = (part *) malloc(sizeof(part) * np);
+ assert(p);
for (i = 0; i < np; i++)
setnewpart(&p[i]);