mirror of
https://github.com/nunuhara/xsystem4.git
synced 2026-10-11 16:58:27 +03:00
Fix memcpy overlap in string_erase
This commit is contained in:
+4
-1
@@ -235,7 +235,10 @@ void string_erase(struct string **s, int index)
|
||||
bytes = SJIS_2BYTE((*s)->text[index]) ? 2 : 1;
|
||||
|
||||
*s = cow_check(*s);
|
||||
memcpy((*s)->text + index, (*s)->text + index + bytes, (*s)->size - index - bytes);
|
||||
size_t size = (*s)->size - index - bytes;
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
(*s)->text[index+i] = (*s)->text[index+bytes+i];
|
||||
}
|
||||
(*s)->size -= bytes;
|
||||
(*s)->text[(*s)->size] = '\0';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user