Fix stb_arr_insertn and stb_arr_deleten memmove lengths

They were moving memory beyond the array bounds.
pull/207/head
blackpawn 2015-12-02 01:16:29 -06:00
parent 64fa9a3d95
commit cbfa0c4418
1 changed files with 2 additions and 2 deletions

4
stb.h
View File

@ -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;