about summary refs log tree commit diff
path: root/lib/libppmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libppmd.c')
-rw-r--r--lib/libppmd.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/libppmd.c b/lib/libppmd.c
index 167d5c76..1046ce68 100644
--- a/lib/libppmd.c
+++ b/lib/libppmd.c
@@ -260,6 +260,14 @@ clipEnd0(int    const x0,
         }
     }
 
+    /* Clipping vertically may have moved the endpoint out of frame
+       horizontally.  If so, we know the other endpoint is also out of
+       frame horizontally and the line misses the frame entirely.
+    */
+    if (cx0 < 0 || cx0 >= cols) {
+        assert(x1 < 0 || x1 >= cols);
+        noLine = TRUE;
+    }
     *cx0P = cx0;
     *cy0P = cy0;
     *noLineP = noLine;