]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Add missing checks in update_for_intended_size() in the font selector
authorSimon Tatham <anakin@pobox.com>
Thu, 11 Jul 2013 17:24:28 +0000 (17:24 +0000)
committerSimon Tatham <anakin@pobox.com>
Thu, 11 Jul 2013 17:24:28 +0000 (17:24 +0000)
code, which would have coped badly if ever asked to select the first
font in the list at a size smaller than it supported. Luckily the
first font tended to be one of the X numeric aliases (e.g. 10x20)
which was stored with size zero, so this probably didn't actually come
up for anyone, but better safe than sorry.

[originally from svn r9910]

unix/gtkfont.c

index 123731a1d69337693d24be19faf41a14224169f3..56ae031525e2ed02133efd41e97580b8a3726537 100644 (file)
@@ -2288,6 +2288,8 @@ static fontinfo *update_for_intended_size(unifontsel_internal *fs,
      */
     below = findrelpos234(fs->fonts_by_selorder, &info2, NULL,
                          REL234_LE, &pos);
+    if (!below)
+        pos = -1;
     above = index234(fs->fonts_by_selorder, pos+1);
 
     /*
@@ -2295,7 +2297,7 @@ static fontinfo *update_for_intended_size(unifontsel_internal *fs,
      * case. If we have, it'll be in `below' and not `above',
      * because we did a REL234_LE rather than REL234_LT search.
      */
-    if (!fontinfo_selorder_compare(&info2, below))
+    if (below && !fontinfo_selorder_compare(&info2, below))
        return below;
 
     /*