mirror of git://git.musl-libc.org/musl
fix data race in at_quick_exit
aside from theoretical arbitrary results due to UB, this could practically cause unbounded overflow of static array if hit, but hitting it depends on having more than 32 calls to at_quick_exit and having them sufficiently often.
This commit is contained in:
parent
01957bed1e
commit
6430315683
|
@ -21,9 +21,10 @@ void __funcs_on_quick_exit()
|
|||
|
||||
int at_quick_exit(void (*func)(void))
|
||||
{
|
||||
if (count == 32) return -1;
|
||||
int r = 0;
|
||||
LOCK(lock);
|
||||
funcs[count++] = func;
|
||||
if (count == 32) r = -1;
|
||||
else funcs[count++] = func;
|
||||
UNLOCK(lock);
|
||||
return 0;
|
||||
return r;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue