-
Notifications
You must be signed in to change notification settings - Fork 1
hack to fix 3986 #1
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
Conversation
just a proof to show that issue analysis is correct
@@ -33,7 +33,7 @@ | |||
#include "supervisor/shared/tick.h" | |||
#include "shared-bindings/microcontroller/__init__.h" | |||
|
|||
STATIC volatile background_callback_t *callback_head, *callback_tail; | |||
STATIC volatile background_callback_t * volatile callback_head, * volatile callback_tail; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you mean the pointer is volatile rather than the data it is pointed to. We actually can have it as
STATIC background_callback_t * volatile callback_head, * volatile callback_tail;
But I will leave it as both volatile just in case.
@@ -50,7 +50,6 @@ void background_callback_add_core(background_callback_t *cb) { | |||
cb->prev = (background_callback_t*)callback_tail; | |||
if (callback_tail) { | |||
callback_tail->next = cb; | |||
cb->prev = (background_callback_t*)callback_tail; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this function seem to be redundant
unconditionally schedule usb background after background_callback_reset()
Merge latest CircuitPython changes (6.0.0-rc.1)
asan considers that memcmp(p, q, N) is permitted to access N bytes at each of p and q, even for values of p and q that have a difference earlier. Accessing additional values is frequently done in practice, reading 4 or more bytes from each input at a time for efficiency, so when completing "non_exist<TAB>" in the repl, this causes a diagnostic: ==16938==ERROR: AddressSanitizer: global-buffer-overflow on address 0x555555cd8dc8 at pc 0x7ffff726457b bp 0x7fffffffda20 sp 0x7fff READ of size 9 at 0x555555cd8dc8 thread T0 #0 0x7ffff726457a (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xb857a) #1 0x555555b0e82a in mp_repl_autocomplete ../../py/repl.c:301 adafruit#2 0x555555c89585 in readline_process_char ../../lib/mp-readline/re adafruit#3 0x555555c8ac6e in readline ../../lib/mp-readline/readline.c:513 adafruit#4 0x555555b8dcbd in do_repl /home/jepler/src/micropython/ports/uni adafruit#5 0x555555b90859 in main_ /home/jepler/src/micropython/ports/unix/ adafruit#6 0x555555b90a3a in main /home/jepler/src/micropython/ports/unix/m adafruit#7 0x7ffff619a09a in __libc_start_main ../csu/libc-start.c:308 adafruit#8 0x55555595fd69 in _start (/home/jepler/src/micropython/ports/uni 0x555555cd8dc8 is located 0 bytes to the right of global variable 'import_str' defined in '../../py/repl.c:285:23' (0x555555cd8dc0) of size 8 'import_str' is ascii string 'import ' Signed-off-by: Jeff Epler <[email protected]>
Board files for LOLIN S3 MINI
just a proof to show that issue analysis is correct
@dhalbert @tannewt