Commit 9a38ee073 for imagemagick.org
commit 9a38ee07390eda070500274bb7a30a88c6eb090e
Author: Cristy <urban-warrior@imagemagick.org>
Date: Fri Jul 3 17:42:47 2026 -0400
check for EOF
diff --git a/coders/pnm.c b/coders/pnm.c
index 8481f5964..32f0d2938 100644
--- a/coders/pnm.c
+++ b/coders/pnm.c
@@ -402,7 +402,11 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
for (c=ReadBlobByte(image); c != EOF; c=ReadBlobByte(image))
{
while (isspace((int) ((unsigned char) c)) != 0)
+ {
c=ReadBlobByte(image);
+ if (c == EOF)
+ break;
+ }
if (c == '#')
{
/*
@@ -412,9 +416,15 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
c=PNMComment(image,&comment_info,exception);
c=ReadBlobByte(image);
+ if (c == EOF)
+ break;
}
while (isspace((int) ((unsigned char) c)) != 0)
+ {
c=ReadBlobByte(image);
+ if (c == EOF)
+ break;
+ }
}
p=keyword;
do
@@ -422,18 +432,26 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
if ((size_t) (p-keyword) < (MagickPathExtent-1))
*p++=(char) c;
c=ReadBlobByte(image);
+ if (c == EOF)
+ break;
} while (isalnum((int) ((unsigned char) c)));
*p='\0';
if (LocaleCompare(keyword,"endhdr") == 0)
break;
while (isspace((int) ((unsigned char) c)) != 0)
+ {
c=ReadBlobByte(image);
+ if (c == EOF)
+ break;
+ }
p=value;
while (isalnum((int) ((unsigned char) c)) || (c == '_'))
{
if ((size_t) (p-value) < (MagickPathExtent-1))
*p++=(char) c;
c=ReadBlobByte(image);
+ if (c == EOF)
+ break;
}
*p='\0';
/*