summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad Larsen <brad@bradfordlarsen.com>2019-04-01 14:36:05 (GMT)
committerGuido van Rossum <guido@python.org>2019-04-01 14:36:05 (GMT)
commita4d78362397fc3bced6ea80fbc7b5f4827aec55e (patch)
tree48884a58dc472e2ca0d447af4028461f6124c104
parent10654c19b5e6efdf3c529ff9bf7bcab89bdca1c1 (diff)
downloadcpython-a4d78362397fc3bced6ea80fbc7b5f4827aec55e.zip
cpython-a4d78362397fc3bced6ea80fbc7b5f4827aec55e.tar.gz
cpython-a4d78362397fc3bced6ea80fbc7b5f4827aec55e.tar.bz2
bpo-36495: Fix two out-of-bounds array reads (GH-12641)
Research and fix by @bradlarsen.
-rw-r--r--Python/ast.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Python/ast.c b/Python/ast.c
index e9154fe..913e53a 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -1400,7 +1400,7 @@ handle_keywordonly_args(struct compiling *c, const node *n, int start,
goto error;
asdl_seq_SET(kwonlyargs, j++, arg);
i += 1; /* the name */
- if (TYPE(CHILD(n, i)) == COMMA)
+ if (i < NCH(n) && TYPE(CHILD(n, i)) == COMMA)
i += 1; /* the comma, if present */
break;
case TYPE_COMMENT:
@@ -1599,7 +1599,7 @@ ast_for_arguments(struct compiling *c, const node *n)
if (!kwarg)
return NULL;
i += 2; /* the double star and the name */
- if (TYPE(CHILD(n, i)) == COMMA)
+ if (i < NCH(n) && TYPE(CHILD(n, i)) == COMMA)
i += 1; /* the comma, if present */
break;
case TYPE_COMMENT: