diff -up cups-1.3.7/filter/texttops.c.CVE-2010-0542 cups-1.3.7/filter/texttops.c --- cups-1.3.7/filter/texttops.c.CVE-2010-0542 2010-05-13 17:14:58.907217374 +0100 +++ cups-1.3.7/filter/texttops.c 2010-05-13 17:15:27.696093503 +0100 @@ -181,8 +181,20 @@ WriteProlog(const char *title, /* I - T exit(1); } - Page = calloc(sizeof(lchar_t *), SizeLines); - Page[0] = calloc(sizeof(lchar_t), SizeColumns * SizeLines); + if ((Page = calloc(sizeof(lchar_t *), SizeLines)) == NULL) + { + _cupsLangPrintf(stderr, _("ERROR: Unable to print %dx%d text page.\n"), + SizeColumns, SizeLines); + exit(1); + } + + if ((Page[0] = calloc(sizeof(lchar_t), SizeColumns * SizeLines)) == NULL) + { + _cupsLangPrintf(stderr, _("ERROR: Unable to print %dx%d text page.\n"), + SizeColumns, SizeLines); + exit(1); + } + for (i = 1; i < SizeLines; i ++) Page[i] = Page[0] + i * SizeColumns;