From: Cristy Date: Sat, 22 Jun 2019 00:27:29 +0000 (-0400) Subject: https://github.com/ImageMagick/ImageMagick/issues/1613 X-Git-Tag: 7.0.8-50~18 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=29efd648f38b73a64d73f14cd2019d869a585888;p=imagemagick https://github.com/ImageMagick/ImageMagick/issues/1613 --- diff --git a/coders/pnm.c b/coders/pnm.c index a54bc60c3..afaea309d 100644 --- a/coders/pnm.c +++ b/coders/pnm.c @@ -1824,14 +1824,14 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image, count=(ssize_t) FormatLocaleString(buffer,MagickPathExtent, "%u ",ScaleQuantumToLong(index)); extent=(size_t) count; - (void) strncpy((char *) q,buffer,extent); - q+=extent; - if ((q-pixels+extent+2) >= sizeof(pixels)) + if ((q-pixels+extent+1) >= sizeof(pixels)) { *q++='\n'; (void) WriteBlob(image,q-pixels,pixels); q=pixels; } + (void) strncpy((char *) q,buffer,extent); + q+=extent; p+=GetPixelChannels(image); } *q++='\n'; @@ -1899,14 +1899,14 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image, ScaleQuantumToLong(GetPixelGreen(image,p)), ScaleQuantumToLong(GetPixelBlue(image,p))); extent=(size_t) count; - (void) strncpy((char *) q,buffer,extent); - q+=extent; if ((q-pixels+extent+2) >= sizeof(pixels)) { *q++='\n'; (void) WriteBlob(image,q-pixels,pixels); q=pixels; } + (void) strncpy((char *) q,buffer,extent); + q+=extent; p+=GetPixelChannels(image); } *q++='\n';