diff options
Diffstat (limited to 'converter/other/xwdtopnm.c')
-rw-r--r-- | converter/other/xwdtopnm.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/converter/other/xwdtopnm.c b/converter/other/xwdtopnm.c index a99768b8..4eb16def 100644 --- a/converter/other/xwdtopnm.c +++ b/converter/other/xwdtopnm.c @@ -549,10 +549,10 @@ processX11Header(X11WDFileHeader * const h11P, pm_error("couldn't read rest of X11 XWD file header"); /* Check whether we can handle this dump. */ - if (h11FixedP->pixmap_depth > 24) - pm_error( "can't handle X11 pixmap_depth > 24"); - if (h11FixedP->bits_per_rgb > 24) - pm_error("can't handle X11 bits_per_rgb > 24"); + if (h11FixedP->pixmap_depth > 32) + pm_error( "can't handle X11 pixmap_depth > 32"); + if (h11FixedP->bits_per_rgb > 32) + pm_error("can't handle X11 bits_per_rgb > 32"); if (h11FixedP->pixmap_format != ZPixmap && h11FixedP->pixmap_depth != 1) pm_error("can't handle X11 pixmap_format %d with depth != 1", h11FixedP->pixmap_format); @@ -593,6 +593,9 @@ processX11Header(X11WDFileHeader * const h11P, *formatP = PPM_TYPE; /* See discussion above about this maxval */ + if (h11FixedP->bits_per_rgb > 16) + pm_error("Invalid bits_per_rgb for TrueColor image: %u. " + "Maximum possible is 16", h11FixedP->bits_per_rgb); *maxvalP = pm_bitstomaxval(h11FixedP->bits_per_rgb); } else if (*visualclassP == StaticGray && h11FixedP->bits_per_pixel == 1) { *formatP = PBM_TYPE; |