diff options
author | Michael Hohmuth <sideral@rockbox.org> | 2011-06-14 20:54:26 +0000 |
---|---|---|
committer | Michael Hohmuth <sideral@rockbox.org> | 2011-06-14 20:54:26 +0000 |
commit | 851cac848a03fdcfc60a6681570239b5dd5e1b18 (patch) | |
tree | ffdd91e20093b8dd411f0f4ce5bbdd85d0367c8a /apps/tagtree.c | |
parent | 4456abb60133a15be256d58518378b3dd262aa81 (diff) | |
download | rockbox-851cac848a03fdcfc60a6681570239b5dd5e1b18.tar.gz rockbox-851cac848a03fdcfc60a6681570239b5dd5e1b18.zip |
Prevent out-of-bounds array access when a tagnavi config file defines too many %format specifications
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30006 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/tagtree.c')
-rw-r--r-- | apps/tagtree.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c index a1c5640b74..9451387a66 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c | |||
@@ -462,6 +462,12 @@ static int get_format_str(struct display_format *fmt) | |||
462 | 462 | ||
463 | static int add_format(const char *buf) | 463 | static int add_format(const char *buf) |
464 | { | 464 | { |
465 | if (format_count >= TAGMENU_MAX_FMTS) | ||
466 | { | ||
467 | logf("too many formats"); | ||
468 | return -1; | ||
469 | } | ||
470 | |||
465 | strp = buf; | 471 | strp = buf; |
466 | 472 | ||
467 | if (formats[format_count] == NULL) | 473 | if (formats[format_count] == NULL) |