mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-15 20:35:33 +03:00
Fix pageMaxRow use before update
After commit d2e7abd
the for loop following my change use pageMaxRow to determine which flags to clear.
But this pageMaxRow value is updated after the loop, which caused a crash in a very specific circumstance:
1 open the CMS OSD menu and go to profile
2 close the profile by yaw right, select exit
3 open CMS OSD menu and go to profile again
This caused a crash as runtimeEntryFlags wasn't cleared properly and the Copy Profile entry's flags still indicated OPTSTRING somehow.
which caused it's CMSEntryFuncPtr function to be cast to OPTSTRING and called without arguments.
This commit is contained in:
parent
1cbff2b9aa
commit
711424f63b
1 changed files with 2 additions and 2 deletions
|
@ -250,13 +250,13 @@ static void cmsPageSelect(displayPort_t *instance, int8_t newpage)
|
|||
{
|
||||
currentCtx.page = (newpage + pageCount) % pageCount;
|
||||
pageTop = ¤tCtx.menu->entries[currentCtx.page * maxMenuItems];
|
||||
cmsUpdateMaxRow(instance);
|
||||
|
||||
const OSD_Entry *p;
|
||||
int i;
|
||||
for (p = pageTop, i = 0; (p <= pageTop + pageMaxRow); p++, i++) {
|
||||
runtimeEntryFlags[i] = p->flags;
|
||||
}
|
||||
cmsUpdateMaxRow(instance);
|
||||
displayClearScreen(instance);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue