提交 64303156 编写于 作者: R Rich Felker

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.
上级 01957bed
......@@ -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;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册