tfix random troff crash (Noel Hunt) - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 4198bd0e2eb7ce81972a27feea2ad518b8ea39da
 (DIR) parent e17c64a7cd5162ee586f4b1bdd797f64381859d9
 (HTM) Author: rsc <devnull@localhost>
       Date:   Tue,  8 May 2007 02:52:21 +0000
       
       fix random troff crash (Noel Hunt)
       
       Diffstat:
         M src/cmd/troff/n8.c                  |       8 ++++++--
       
       1 file changed, 6 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/troff/n8.c b/src/cmd/troff/n8.c
       t@@ -400,7 +400,7 @@ static int texit(Tchar *start, Tchar *end)        /* hyphenate as in tex, return # foun
                for (i = 0; i <= nw; i++)
                        cnt[i] = '0';
        
       -        for (wp = w; wp < w + nw; wp++) {
       +        for (wp = w; wp+1 < w+nw; wp++) {
                        for (pp = trie[trieindex(*wp, *(wp+1))]; pp < nextpat; ) {
                                if (pp == 0                /* no trie entry */
                                 || *pp != *wp                /* no match on 1st letter */
       t@@ -537,5 +537,9 @@ static void fixup(void)        /* build indexes of where . a b c ... start */
        
        static int trieindex(int d1, int d2)
        {
       -        return 27 * (d1 == '.' ? 0 : d1 - 'a' + 1) + (d2 == '.' ? 0 : d2 - 'a' + 1);
       +        int z;
       +
       +        z = 27 * (d1 == '.' ? 0 : d1 - 'a' + 1) + (d2 == '.' ? 0 : d2 - 'a' + 1);
       +        assert(z >= 0 && z < 27*27);
       +        return z;
        }