From: Benjamin Gordon Date: Mon, 25 Mar 2024 15:59:21 +0000 (-0600) Subject: Add additional parameter validation to _cupsRasterWritePixels X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8c5577ded0f207822d4e4b1f3a1923701f76592;p=thirdparty%2Fcups.git Add additional parameter validation to _cupsRasterWritePixels If len is 0, the function does a lot of calculations that ultimately don't produce any output. This can be skipped with an early return. If cupsBytesPerLine is 0, this triggers a divide by zero if the output isn't compressed. This is an error on the caller's part, but it's nicer to return an error than to crash. --- diff --git a/cups/raster-stream.c b/cups/raster-stream.c index d64eefcefc..f130670097 100644 --- a/cups/raster-stream.c +++ b/cups/raster-stream.c @@ -1407,7 +1407,7 @@ _cupsRasterWritePixels( DEBUG_printf("_cupsRasterWritePixels(r=%p, p=%p, len=%u), remaining=%u", (void *)r, (void *)p, len, r->remaining); - if (r == NULL || r->mode == CUPS_RASTER_READ || r->remaining == 0) + if (r == NULL || r->mode == CUPS_RASTER_READ || r->remaining == 0 || len == 0 || r->header.cupsBytesPerLine == 0) return (0); if (!r->compressed)