diff options
author | Mike Pall <mike> | 2020-02-13 17:39:51 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2020-02-13 17:39:51 +0100 |
commit | 0ad60ccbc3768fa8e3e726858adf261950edbc22 (patch) | |
tree | 8f9822b7a3b82e3cd62732492339ae950ac5ca55 /src/lj_cparse.c | |
parent | d85d6b3c1b2c3d1ecf89ccff6ad7519e767fcebe (diff) | |
download | luajit-0ad60ccbc3768fa8e3e726858adf261950edbc22.tar.gz luajit-0ad60ccbc3768fa8e3e726858adf261950edbc22.tar.bz2 luajit-0ad60ccbc3768fa8e3e726858adf261950edbc22.zip |
Make string to number conversions fail on NUL char.
Contributed by Igor Munkin.
Diffstat (limited to 'src/lj_cparse.c')
-rw-r--r-- | src/lj_cparse.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_cparse.c b/src/lj_cparse.c index 70b82af3..a393965e 100644 --- a/src/lj_cparse.c +++ b/src/lj_cparse.c | |||
@@ -169,7 +169,8 @@ static CPToken cp_number(CPState *cp) | |||
169 | TValue o; | 169 | TValue o; |
170 | do { cp_save(cp, cp->c); } while (lj_char_isident(cp_get(cp))); | 170 | do { cp_save(cp, cp->c); } while (lj_char_isident(cp_get(cp))); |
171 | cp_save(cp, '\0'); | 171 | cp_save(cp, '\0'); |
172 | fmt = lj_strscan_scan((const uint8_t *)sbufB(&cp->sb), &o, STRSCAN_OPT_C); | 172 | fmt = lj_strscan_scan((const uint8_t *)sbufB(&cp->sb), sbuflen(&cp->sb)-1, |
173 | &o, STRSCAN_OPT_C); | ||
173 | if (fmt == STRSCAN_INT) cp->val.id = CTID_INT32; | 174 | if (fmt == STRSCAN_INT) cp->val.id = CTID_INT32; |
174 | else if (fmt == STRSCAN_U32) cp->val.id = CTID_UINT32; | 175 | else if (fmt == STRSCAN_U32) cp->val.id = CTID_UINT32; |
175 | else if (!(cp->mode & CPARSE_MODE_SKIP)) | 176 | else if (!(cp->mode & CPARSE_MODE_SKIP)) |