diff options
author | Robert Kukla <roolku@rockbox.org> | 2007-04-01 17:28:46 +0000 |
---|---|---|
committer | Robert Kukla <roolku@rockbox.org> | 2007-04-01 17:28:46 +0000 |
commit | 6dbcceb1fef9c3c6b4ec186543ab7ce6e8647df1 (patch) | |
tree | 738670ee5f0db4d0f76806345bf369ecf0b72f01 /firmware | |
parent | c67c892cd3351f32aabd84ad4d597ce2c971e62a (diff) | |
download | rockbox-6dbcceb1fef9c3c6b4ec186543ab7ce6e8647df1.tar.gz rockbox-6dbcceb1fef9c3c6b4ec186543ab7ce6e8647df1.zip |
for WPS files with many lines the current wps code will call puts_scroll with y-values greater than the size of the scroll[] array (e.g. gwps-common.c:2063). This is a temporary security measure until viewports and/or wps tokenizer are available...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12992 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/lcd-16bit.c | 4 | ||||
-rw-r--r-- | firmware/drivers/lcd-1bit-vert.c | 4 | ||||
-rw-r--r-- | firmware/drivers/lcd-2bit-horz.c | 4 | ||||
-rw-r--r-- | firmware/drivers/lcd-2bit-vert.c | 4 | ||||
-rw-r--r-- | firmware/drivers/lcd-charcell.c | 2 | ||||
-rw-r--r-- | firmware/drivers/lcd-remote-1bit-v.c | 4 | ||||
-rw-r--r-- | firmware/drivers/lcd-remote-2bit-vi.c | 4 |
7 files changed, 26 insertions, 0 deletions
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c index 7269e54dcd..67736ddf85 100644 --- a/firmware/drivers/lcd-16bit.c +++ b/firmware/drivers/lcd-16bit.c @@ -848,6 +848,8 @@ void lcd_invertscroll(int x, int y) (void)x; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->invert = !s->invert; } @@ -898,6 +900,8 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string, struct scrollinfo* s; int w, h; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->start_tick = current_tick + scroll_delay; diff --git a/firmware/drivers/lcd-1bit-vert.c b/firmware/drivers/lcd-1bit-vert.c index 64c1ace292..ec0ddeec41 100644 --- a/firmware/drivers/lcd-1bit-vert.c +++ b/firmware/drivers/lcd-1bit-vert.c @@ -692,6 +692,8 @@ void lcd_invertscroll(int x, int y) (void)x; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->invert = !s->invert; } @@ -743,6 +745,8 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string, struct scrollinfo* s; int w, h; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->start_tick = current_tick + scroll_delay; diff --git a/firmware/drivers/lcd-2bit-horz.c b/firmware/drivers/lcd-2bit-horz.c index 475e466c42..d3d086a9d2 100644 --- a/firmware/drivers/lcd-2bit-horz.c +++ b/firmware/drivers/lcd-2bit-horz.c @@ -889,6 +889,8 @@ void lcd_invertscroll(int x, int y) (void)x; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->invert = !s->invert; } @@ -939,6 +941,8 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string, struct scrollinfo* s; int w, h; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->start_tick = current_tick + scroll_delay; diff --git a/firmware/drivers/lcd-2bit-vert.c b/firmware/drivers/lcd-2bit-vert.c index 7a49f35312..37abf0496f 100644 --- a/firmware/drivers/lcd-2bit-vert.c +++ b/firmware/drivers/lcd-2bit-vert.c @@ -1025,6 +1025,8 @@ void lcd_invertscroll(int x, int y) (void)x; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->invert = !s->invert; } @@ -1075,6 +1077,8 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string, struct scrollinfo* s; int w, h; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->start_tick = current_tick + scroll_delay; diff --git a/firmware/drivers/lcd-charcell.c b/firmware/drivers/lcd-charcell.c index 4d8a693e1f..3c8db1ae97 100644 --- a/firmware/drivers/lcd-charcell.c +++ b/firmware/drivers/lcd-charcell.c @@ -456,6 +456,8 @@ void lcd_puts_scroll_offset(int x, int y, const unsigned char *string, struct scrollinfo* s; int len; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->start_tick = current_tick + scroll_delay; diff --git a/firmware/drivers/lcd-remote-1bit-v.c b/firmware/drivers/lcd-remote-1bit-v.c index 0aa3d890f7..6b5b1fb42f 100644 --- a/firmware/drivers/lcd-remote-1bit-v.c +++ b/firmware/drivers/lcd-remote-1bit-v.c @@ -691,6 +691,8 @@ void lcd_remote_invertscroll(int x, int y) (void)x; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->invert = !s->invert; } @@ -741,6 +743,8 @@ void lcd_remote_puts_scroll_style_offset(int x, int y, const unsigned char *stri struct scrollinfo* s; int w, h; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->start_tick = current_tick + scroll_delay; diff --git a/firmware/drivers/lcd-remote-2bit-vi.c b/firmware/drivers/lcd-remote-2bit-vi.c index e0f6b35004..65704f0bd3 100644 --- a/firmware/drivers/lcd-remote-2bit-vi.c +++ b/firmware/drivers/lcd-remote-2bit-vi.c @@ -1027,6 +1027,8 @@ void lcd_remote_invertscroll(int x, int y) (void)x; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->invert = !s->invert; } @@ -1077,6 +1079,8 @@ void lcd_remote_puts_scroll_style_offset(int x, int y, const unsigned char *stri struct scrollinfo* s; int w, h; + if(y>=SCROLLABLE_LINES) return; + s = &scroll[y]; s->start_tick = current_tick + scroll_delay; |