forked from len0rd/rockbox
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
This commit is contained in:
parent
4cb473562e
commit
e7c2449d07
1 changed files with 5 additions and 4 deletions
|
@ -1275,6 +1275,7 @@ static int retrieve_entries(struct tree_context *c, int offset, bool init)
|
||||||
dptr->name = str(LANG_TAGNAVI_ALL_TRACKS);
|
dptr->name = str(LANG_TAGNAVI_ALL_TRACKS);
|
||||||
dptr++;
|
dptr++;
|
||||||
current_entry_count++;
|
current_entry_count++;
|
||||||
|
special_entry_count++;
|
||||||
}
|
}
|
||||||
if (offset <= 1)
|
if (offset <= 1)
|
||||||
{
|
{
|
||||||
|
@ -1283,12 +1284,12 @@ static int retrieve_entries(struct tree_context *c, int offset, bool init)
|
||||||
dptr->extraseek = -1;
|
dptr->extraseek = -1;
|
||||||
dptr++;
|
dptr++;
|
||||||
current_entry_count++;
|
current_entry_count++;
|
||||||
|
special_entry_count++;
|
||||||
}
|
}
|
||||||
special_entry_count+=2;
|
|
||||||
|
total_count += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
total_count += special_entry_count;
|
|
||||||
|
|
||||||
while (tagcache_get_next(&tcs))
|
while (tagcache_get_next(&tcs))
|
||||||
{
|
{
|
||||||
if (total_count++ < offset)
|
if (total_count++ < offset)
|
||||||
|
@ -1420,7 +1421,7 @@ static int retrieve_entries(struct tree_context *c, int offset, bool init)
|
||||||
if (strip)
|
if (strip)
|
||||||
{
|
{
|
||||||
dptr = c->cache.entries;
|
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);
|
int len = strlen(dptr->name);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue