diff options
author | Teruaki Kawashima <teru@rockbox.org> | 2010-10-11 13:08:49 +0000 |
---|---|---|
committer | Teruaki Kawashima <teru@rockbox.org> | 2010-10-11 13:08:49 +0000 |
commit | 59f487205c891d46530fc398ab92ec73c222a59f (patch) | |
tree | 934e7a1e404328da98f244b6d8fb2f1134db48cd | |
parent | 8e8839c8c2e5eadf3aac0b109b0cf62b9b1faf0b (diff) | |
download | rockbox-59f487205c891d46530fc398ab92ec73c222a59f.tar.gz rockbox-59f487205c891d46530fc398ab92ec73c222a59f.zip |
check viewport dimension when parsing viewport so that player doesn't clash with bad wps.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28244 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 9475e5feb5..75b4c4298f 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c | |||
@@ -1313,10 +1313,14 @@ static int convert_viewport(struct wps_data *data, struct skin_element* element) | |||
1313 | { | 1313 | { |
1314 | skin_vp->vp.font = param->data.number; | 1314 | skin_vp->vp.font = param->data.number; |
1315 | } | 1315 | } |
1316 | #endif | 1316 | #endif |
1317 | if ((unsigned) skin_vp->vp.x >= (unsigned) display->lcdwidth || | ||
1318 | skin_vp->vp.width + skin_vp->vp.x > display->lcdwidth || | ||
1319 | (unsigned) skin_vp->vp.y >= (unsigned) display->lcdheight || | ||
1320 | skin_vp->vp.height + skin_vp->vp.y > display->lcdheight) | ||
1321 | return CALLBACK_ERROR; | ||
1317 | 1322 | ||
1318 | return CALLBACK_OK; | 1323 | return CALLBACK_OK; |
1319 | |||
1320 | } | 1324 | } |
1321 | 1325 | ||
1322 | static int skin_element_callback(struct skin_element* element, void* data) | 1326 | static int skin_element_callback(struct skin_element* element, void* data) |