提交 cbfa0c44 编写于 作者: B blackpawn

Fix stb_arr_insertn and stb_arr_deleten memmove lengths

They were moving memory beyond the array bounds.
上级 64fa9a3d
......@@ -3249,7 +3249,7 @@ void stb__arr_insertn_(void **pp, int size, int i, int n STB__PARAMS)
z = stb_arr_len2(p);
stb__arr_addlen_(&p, size, i STB__ARGS);
memmove((char *) p + (i+n)*size, (char *) p + i*size, size * (z-i));
memmove((char *) p + (i+n)*size, (char *) p + i*size, size * (z-(i+n)));
}
*pp = p;
}
......@@ -3258,7 +3258,7 @@ void stb__arr_deleten_(void **pp, int size, int i, int n STB__PARAMS)
{
void *p = *pp;
if (n) {
memmove((char *) p + i*size, (char *) p + (i+n)*size, size * (stb_arr_len2(p)-i));
memmove((char *) p + i*size, (char *) p + (i+n)*size, size * (stb_arr_len2(p)-(i+n)));
stb_arrhead2(p)->len -= n;
}
*pp = p;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册