diff options
author | Thomas White <taw@bitwiz.org.uk> | 2013-12-06 22:42:00 +0100 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2013-12-06 22:42:00 +0100 |
commit | d2a04c438845b504995ce8518e5340d90eb07f28 (patch) | |
tree | b6d2f29f3de0f7a561720fed9c7758894c711fef /src | |
parent | dd96572950db971746a46964e381b02c1aa25114 (diff) |
Avoid writing outside array bounds in insert_slide
Diffstat (limited to 'src')
-rw-r--r-- | src/presentation.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/presentation.c b/src/presentation.c index 426783f..d3c9221 100644 --- a/src/presentation.c +++ b/src/presentation.c @@ -98,9 +98,12 @@ int insert_slide(struct presentation *p, struct slide *new, int pos) p->completely_empty = 0; p->num_slides++; - for ( i=p->num_slides-1; i>=pos; i-- ) { - p->slides[i] = p->slides[i-1]; + if ( p->num_slides > 0 ) { + for ( i=p->num_slides-1; i>=pos; i-- ) { + p->slides[i] = p->slides[i-1]; + } } + p->slides[pos] = new; new->parent = p; |