From acccc89c20206a5db1f463438ba444e35bcb400e Mon Sep 17 00:00:00 2001 From: Thomas Loimer Date: Tue, 28 Jan 2020 22:56:40 +0100 Subject: [PATCH] Reject text or ellipse angles beyond -2pi to 2pi, #76 In fact, generously extend the allowed range to -7 to 7. Sane applications, e.g., xfig, certainly keep the angles within one revolution. --- CHANGES | 6 +++--- fig2dev/object.h | 7 ++++--- fig2dev/tests/read.at | 8 ++++++++ 3 files changed, 15 insertions(+), 6 deletions(-) |diff --git CHANGES CHANGES |index 4834e50..52daead 100644 |--- CHANGES |+++ CHANGES |@@ -6,9 +6,9 @@ Patchlevel Xx (Xxx 20xx) | | BUGS FIXED: | Ticket numbers refer to https://sourceforge.net/p/mcj/tickets/#. |- o Fix ticket #81. |- o Do not allow ASCII NUL anywhere in input. |- Fixes tickets #65, #68, #71, #73, #75, #80. |+ o Accept text and ellipse angles only within -2*pi to 2*pi. Fixes #76. |+ o Allow -1 as default TeX font, not only 0. Fixes #71, #75, #81. |+ o Do not allow ASCII NUL anywhere in input. Fixes #65, #68, #73, #80. | o Use getline() to improve input scanning. | Fixes tickets #58, #59, #61, #62, #67, #78, #79. | o Correctly scan embedded pdfs for /MediaBox value. diff --git fig2dev/object.h fig2dev/object.h index fe56bbb..8464010 100644 --- fig2dev/object.h +++ fig2dev/object.h @@ -3,7 +3,7 @@ * Copyright (c) 1991 by Micah Beck * Parts Copyright (c) 1985-1988 by Supoj Sutanthavibul * Parts Copyright (c) 1989-2015 by Brian V. Smith - * Parts Copyright (c) 2015-2019 by Thomas Loimer + * Parts Copyright (c) 2015-2020 by Thomas Loimer * * Any party obtaining a copy of these files is granted, free of charge, a * full and unrestricted irrevocable, world-wide, paid up, royalty-free, @@ -94,7 +94,8 @@ typedef struct f_ellipse { #define INVALID_ELLIPSE(e) \ e->type < T_ELLIPSE_BY_RAD || e->type > T_CIRCLE_BY_DIA || \ COMMON_PROPERTIES(e) || (e->direction != 1 && e->direction != 0) || \ - e->radiuses.x == 0 || e->radiuses.y == 0 + e->radiuses.x == 0 || e->radiuses.y == 0 || \ + e->angle < -7. || e->angle > 7. typedef struct f_arc { int type; @@ -243,7 +244,7 @@ typedef struct f_text { t->type < T_LEFT_JUSTIFIED || t->type > T_RIGHT_JUSTIFIED || \ t->font < DEFAULT || t->font > MAX_PSFONT || \ t->flags < DEFAULT || t->flags >= 2 * HIDDEN_TEXT || \ - t->height < 0 || t->length < 0 + t->height < 0 || t->length < 0 || t->angle < -7. || t->angle > 7. typedef struct f_control { double lx, ly, rx, ry; /* used by older versions*/ |diff --git fig2dev/tests/read.at fig2dev/tests/read.at |index 726e6da..2d066e4 100644 |--- fig2dev/tests/read.at |+++ fig2dev/tests/read.at |@@ -424,6 +424,14 @@ AT_KEYWORDS([read.c svg]) | AT_CHECK([fig2dev -L svg $srcdir/data/text_w_ascii0.fig], 1, ignore, ignore) | AT_CLEANUP | |+AT_SETUP([reject out of range text angle, ticket #76]) |+AT_CHECK([fig2dev -L pstricks <