summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-07-12 13:54:47 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-07-12 13:54:47 (GMT)
commitd7053422f14d60daca97a3c3c321ae82fd82025a (patch)
tree7918a6c8ecdace43719449995773521be73220c1 /src
parentaaaed342efc57e4c94aebac85b3c50f6ee0725de (diff)
downloadpowder-d7053422f14d60daca97a3c3c321ae82fd82025a.zip
powder-d7053422f14d60daca97a3c3c321ae82fd82025a.tar.gz
fix potential crashes with LIFE - jacksonmj
Diffstat (limited to 'src')
-rw-r--r--src/powder.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/powder.c b/src/powder.c
index 2a72fee..853914d 100644
--- a/src/powder.c
+++ b/src/powder.c
@@ -831,7 +831,7 @@ inline int create_part(int p, int x, int y, int tv)//the function for creating a
if (t==goltype[r])
parts[i].tmp = grule[r+1][9] - 1;
}*/
- if (t==PT_LIFE)
+ if (t==PT_LIFE && v<NGOLALT)
{
parts[i].tmp = grule[v+1][9] - 1;
parts[i].ctype = v;
@@ -1486,6 +1486,10 @@ void update_particles_i(pixel *vid, int start, int inc)
if (parts[r>>8].type==PT_LIFE/* && parts[r>>8].ctype==golnum-1*/)
{
golnum = parts[r>>8].ctype+1;
+ if (golnum<=0 || golnum>NGOLALT) {
+ parts[r>>8].type = PT_NONE;
+ continue;
+ }
if (parts[r>>8].tmp == grule[golnum][9]-1) {
gol[nx][ny] = golnum;
for ( nnx=-1; nnx<2; nnx++)