summaryrefslogtreecommitdiffstats
path: root/Parser/parsetok.c
diff options
context:
space:
mode:
authorZackery Spytz <zspytz@gmail.com>2018-08-15 06:27:26 (GMT)
committerBenjamin Peterson <benjamin@python.org>2018-08-15 06:27:26 (GMT)
commit7c4ab2afb17b99eb3f61f9c73cbd548b5e0ad2c0 (patch)
treea336b89b5a916bf8bdf2ce87704e6636637b00ba /Parser/parsetok.c
parent88bfd0bce05043f658e50addd21366f317995e35 (diff)
downloadcpython-7c4ab2afb17b99eb3f61f9c73cbd548b5e0ad2c0.zip
cpython-7c4ab2afb17b99eb3f61f9c73cbd548b5e0ad2c0.tar.gz
cpython-7c4ab2afb17b99eb3f61f9c73cbd548b5e0ad2c0.tar.bz2
closes bpo-34400: Fix undefined behavior in parsetok(). (GH-4439)
Avoid undefined pointer arithmetic with NULL.
Diffstat (limited to 'Parser/parsetok.c')
-rw-r--r--Parser/parsetok.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Parser/parsetok.c b/Parser/parsetok.c
index 00d741d..b9c9fe8 100644
--- a/Parser/parsetok.c
+++ b/Parser/parsetok.c
@@ -225,7 +225,7 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
}
else
started = 1;
- len = b - a; /* XXX this may compute NULL - NULL */
+ len = (a != NULL && b != NULL) ? b - a : 0;
str = (char *) PyObject_MALLOC(len + 1);
if (str == NULL) {
err_ret->error = E_NOMEM;