From e7c2449d076a93cde988f6569c6bacd6e2d4562b Mon Sep 17 00:00:00 2001 From: Michael Hohmuth Date: Thu, 4 Aug 2011 10:21:52 +0000 Subject: Database: Fix array-bounds calculation when applying a format using %strip to partially loaded (chunked) database results. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30247 a1c6a512-1295-4272-9138-f99709370657 --- apps/tagtree.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'apps/tagtree.c') diff --git a/apps/tagtree.c b/apps/tagtree.c index 0b16695ad1..31470722d5 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c @@ -1275,6 +1275,7 @@ static int retrieve_entries(struct tree_context *c, int offset, bool init) dptr->name = str(LANG_TAGNAVI_ALL_TRACKS); dptr++; current_entry_count++; + special_entry_count++; } if (offset <= 1) { @@ -1283,12 +1284,12 @@ static int retrieve_entries(struct tree_context *c, int offset, bool init) dptr->extraseek = -1; dptr++; current_entry_count++; + special_entry_count++; } - special_entry_count+=2; + + total_count += 2; } - total_count += special_entry_count; - while (tagcache_get_next(&tcs)) { if (total_count++ < offset) @@ -1420,7 +1421,7 @@ static int retrieve_entries(struct tree_context *c, int offset, bool init) if (strip) { dptr = c->cache.entries; - for (i = 0; i < total_count; i++, dptr++) + for (i = special_entry_count; i < current_entry_count; i++, dptr++) { int len = strlen(dptr->name); -- cgit v1.2.3