mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-02-11 17:10:45 +08:00
preproc.c: Make %substr robust
Make %substr robust to handle -1,-1 parameters and restore old behavior when number of characters in substring is greater then length of string itself. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
parent
ab12287b4c
commit
cff031e1f7
@ -3449,13 +3449,14 @@ issue_error:
|
||||
|
||||
len = nasm_unquote(t->text, NULL);
|
||||
|
||||
/* check the values provided, on error -- empty string */
|
||||
/* make start and count being in range */
|
||||
if (start < 0)
|
||||
start = 0;
|
||||
if (count < 0)
|
||||
count = len + count + 1 - start;
|
||||
if (start + count > (int64_t)len)
|
||||
start = -1;
|
||||
|
||||
if (!len || count < 0 || start < 0)
|
||||
count = len - start;
|
||||
if (!len || count < 0 || start >=(int64_t)len)
|
||||
start = -1, count = 0; /* empty string */
|
||||
|
||||
macro_start = nasm_malloc(sizeof(*macro_start));
|
||||
|
Loading…
Reference in New Issue
Block a user