Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix eboot crash with exception 28. ets_printf() should take pointer argument. #7666

Merged
merged 4 commits into from
Oct 21, 2020

Conversation

dirkenstein
Copy link
Contributor

The latest update to eboot was trying to pass 32bit string literals as their own pointer to ets_printf(). This caused eboot to crash with exception 28 on any operation that used ets_printf().

Copy link
Collaborator

@earlephilhower earlephilhower left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess I flubbed the original PR big time, so thanks for noticing it. It didn't crash in my local testing, but that was obviously not sufficient!

bootloaders/eboot/eboot.c Outdated Show resolved Hide resolved
bootloaders/eboot/eboot.c Outdated Show resolved Hide resolved
@dirkenstein
Copy link
Contributor Author

dirkenstein commented Oct 21, 2020

The crash only happens when ACTION_COPY_RAW is called as part of an OTA firmware update. It breaks OTA updates and leaves the esp8266 in an infinite reset loop until it is power cycled, at which point it reverts to the old firware.

bootloaders/eboot/eboot.c Outdated Show resolved Hide resolved
bootloaders/eboot/eboot.c Outdated Show resolved Hide resolved
@earlephilhower earlephilhower merged commit ace5e98 into esp8266:master Oct 21, 2020
Jason2866 added a commit to Jason2866/Arduino that referenced this pull request Oct 23, 2020
Jason2866 added a commit to Jason2866/Arduino that referenced this pull request Oct 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants