summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-11-13 09:46:08 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-11-13 09:46:08 -0800
commit1b6568b322ea4817ae7e0afe71b95718333c6afa (patch)
tree428bbf13c0bdda2f2cd5687c13137fa90cabdf88
parent7400f0f0e7821bc3f7b6cc6ab4af4438d8949209 (diff)
downloadtxr-1b6568b322ea4817ae7e0afe71b95718333c6afa.tar.gz
txr-1b6568b322ea4817ae7e0afe71b95718333c6afa.tar.bz2
txr-1b6568b322ea4817ae7e0afe71b95718333c6afa.zip
Bug #34813
* match.c (v_freeform): Fail if the data is null, to avoid a false positive match as an empty line, followed by the type error of incrementing a nonexistent data line number.
-rw-r--r--ChangeLog8
-rw-r--r--match.c3
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 044c2b88..989226e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-11-13 Kaz Kylheku <kaz@kylheku.com>
+
+ Bug #34813
+
+ * match.c (v_freeform): Fail if the data is null,
+ to avoid a false positive match as an empty line, followed by the type
+ error of incrementing a nonexistent data line number.
+
2011-11-12 Kaz Kylheku <kaz@kylheku.com>
* parser.y: Correctly record line number info for regex.
diff --git a/match.c b/match.c
index ad260cdc..38fdfc32 100644
--- a/match.c
+++ b/match.c
@@ -1670,6 +1670,9 @@ static val v_freeform(match_files_ctx *c)
if ((c->spec = rest(c->spec)) == nil) {
sem_error(first_spec,
lit("freeform must be followed by a query line"), nao);
+ } else if (!c->data) {
+ debuglf(specline, lit("freeform match failure: no data"), nao);
+ return nil;
} else {
val limit = or2(if2(nump(first(vals)), first(vals)),
if2(nump(second(vals)), second(vals)));