diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2018-08-21 03:23:15 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-21 03:23:15 (GMT) |
commit | 985dcd49cab44bba63ffebe413a9ef17b3da5fa7 (patch) | |
tree | 414d0e64609c096a510e16913ca6192b92f7311c /Parser | |
parent | d1f0ccc7e65ef7abeab779f5d0aca2f18eb9b2a4 (diff) | |
download | cpython-985dcd49cab44bba63ffebe413a9ef17b3da5fa7.zip cpython-985dcd49cab44bba63ffebe413a9ef17b3da5fa7.tar.gz cpython-985dcd49cab44bba63ffebe413a9ef17b3da5fa7.tar.bz2 |
bpo-34400: Fix more undefined behavior in parsetok.c (GH-8833)
(cherry picked from commit 3e26e42c905852394fa136f1cc564dac98b56166)
Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Diffstat (limited to 'Parser')
-rw-r--r-- | Parser/parsetok.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Parser/parsetok.c b/Parser/parsetok.c index b9c9fe8..a1580e6 100644 --- a/Parser/parsetok.c +++ b/Parser/parsetok.c @@ -252,11 +252,13 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret, } } #endif - if (a >= tok->line_start) + if (a != NULL && a >= tok->line_start) { col_offset = Py_SAFE_DOWNCAST(a - tok->line_start, intptr_t, int); - else + } + else { col_offset = -1; + } if ((err_ret->error = PyParser_AddToken(ps, (int)type, str, |