Inform - Support - Patches

About Patches  

Compiler  
Library  

DM4 Errata  

Issue L61125     [previous patch]

match_list and match_scores over-run
Submitted by: Martin Bays     Appeared in: Library 6/11 or before     Fixed in: -
Problem

The problem is that match_list-->number_matched is being accessed, when match_list has length only number_matched (that is, entries 0..number_matched-1). In particular this causes errors when the match_list is of full length (64 entries). Similarly for match_scores.

Solution

Apply this patch to parserm.h:

@@ -3390,7 +3390,7 @@
     for (i=0 : i<number_matched : i++) {
         while (match_list-->i == -1) {
             if (i == number_matched-1) { number_matched--; break; }
-            for (j=i : j<number_matched : j++) {
+            for (j=i : j<number_matched-1 : j++) {
                 match_list-->j = match_list-->(j+1);
                 match_scores-->j = match_scores-->(j+1);
             }


Last updated 17 April 2013. This site is no longer supported; information may be out of date.
Maintained as a historical archive by the Interactive Fiction Technology Foundation. Copyright 1993-2018 IFTF, CC-BY-SA unless otherwise noted.
This page was originally managed by Roger Firth.