summaryrefslogtreecommitdiff
path: root/filter/texttops.c
diff options
context:
space:
mode:
Diffstat (limited to 'filter/texttops.c')
-rw-r--r--filter/texttops.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/filter/texttops.c b/filter/texttops.c
index 59460ce7a..29f5b15c6 100644
--- a/filter/texttops.c
+++ b/filter/texttops.c
@@ -173,6 +173,14 @@ WriteProlog(const char *title, /* I - Title of job */
SizeColumns = (PageRight - PageLeft) / 72.0 * CharsPerInch;
SizeLines = (PageTop - PageBottom) / 72.0 * LinesPerInch;
+ if (SizeColumns <= 0 || SizeColumns > 32767 ||
+ SizeLines <= 0 || SizeLines > 32767)
+ {
+ _cupsLangPrintf(stderr, _("ERROR: Unable to print %dx%d text page!\n"),
+ SizeColumns, SizeLines);
+ exit(1);
+ }
+
Page = calloc(sizeof(lchar_t *), SizeLines);
Page[0] = calloc(sizeof(lchar_t), SizeColumns * SizeLines);
for (i = 1; i < SizeLines; i ++)
@@ -187,6 +195,13 @@ WriteProlog(const char *title, /* I - Title of job */
else
ColumnWidth = SizeColumns;
+ if (ColumnWidth <= 0)
+ {
+ _cupsLangPrintf(stderr, _("ERROR: Unable to print %d text columns!\n"),
+ PageColumns);
+ exit(1);
+ }
+
/*
* Output the DSC header...
*/