diff options
author | yui-knk <spiketeika@gmail.com> | 2024-02-23 09:30:14 +0900 |
---|---|---|
committer | Yuichiro Kaneko <spiketeika@gmail.com> | 2024-02-23 11:12:08 +0900 |
commit | 3ca6da24e397e550d589a69791be7697c0cb73c6 (patch) | |
tree | ad7aceb13d9c0a7ff0b36267323c24c39fca19d2 /parse.y | |
parent | d5080f6e8b77364483ff6727b1065e45e180f05d (diff) | |
download | ruby-3ca6da24e397e550d589a69791be7697c0cb73c6.tar.gz |
[Bug #20295] Fix SEGV when parsing invalid regexp
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -13017,10 +13017,12 @@ match_op(struct parser_params *p, NODE *node1, NODE *node2, const YYLTYPE *op_lo case NODE_REGX: { const VALUE lit = rb_node_regx_string_val(n); - NODE *match = NEW_MATCH2(node1, node2, loc); - RNODE_MATCH2(match)->nd_args = reg_named_capture_assign(p, lit, loc); - nd_set_line(match, line); - return match; + if (!NIL_P(lit)) { + NODE *match = NEW_MATCH2(node1, node2, loc); + RNODE_MATCH2(match)->nd_args = reg_named_capture_assign(p, lit, loc); + nd_set_line(match, line); + return match; + } } } } |