forked from bartvdbraak/blender
Fix T95724: boundary error in BLI_str_unescape_ex
Fix boundary error in `BLI_str_unescape_ex`. The `dst_maxncpy` parameter indicates the maximum buffer size, not the maximum number of characters. As these are strings, the loop has to stop one byte early to allow space for the trailing zero byte. Thanks @mano-wii for the patch!
This commit is contained in:
parent
e4b7d52fe4
commit
1b47d07d76
@ -323,8 +323,9 @@ size_t BLI_str_unescape_ex(char *__restrict dst,
|
||||
{
|
||||
size_t len = 0;
|
||||
bool is_complete = true;
|
||||
const size_t max_strlen = dst_maxncpy - 1; /* Account for trailing zero byte. */
|
||||
for (const char *src_end = src + src_maxncpy; (src < src_end) && *src; src++) {
|
||||
if (UNLIKELY(len == dst_maxncpy)) {
|
||||
if (UNLIKELY(len == max_strlen)) {
|
||||
is_complete = false;
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user