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/branches/v3_9@30251 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Hohmuth 2011-08-04 12:13:12 +00:00
parent 92a578c6a7
commit 6196925915

View file

@ -1244,6 +1244,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)
{
@ -1252,12 +1253,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)
@ -1386,7 +1387,7 @@ static int retrieve_entries(struct tree_context *c, int offset, bool init)
if (strip)
{
dptr = c->dircache;
for (i = 0; i < total_count; i++, dptr++)
for (i = special_entry_count; i < current_entry_count; i++, dptr++)
{
int len = strlen(dptr->name);