diff --git a/magick/blob.c b/magick/blob.c
index 8316d30..e767965 100644
--- a/magick/blob.c
+++ b/magick/blob.c
@@ -269,8 +269,8 @@
break;
}
}
- file=close(file)-1;
- if (i < length)
+ file=close(file);
+ if ((file == -1) || (i < length))
{
ThrowFileException(exception,BlobError,"UnableToWriteBlob",filename);
return(MagickFalse);
@@ -868,13 +868,19 @@
if ((size_t) (i+count) >= extent)
break;
}
- file=close(file)-1;
+ file=close(file);
if (blob == (unsigned char *) NULL)
{
(void) ThrowMagickException(exception,GetMagickModule(),
ResourceLimitError,"MemoryAllocationFailed","`%s'",filename);
return((unsigned char *) NULL);
}
+ if (file == -1)
+ {
+ blob=(unsigned char *) RelinquishMagickMemory(blob);
+ ThrowFileException(exception,BlobError,"UnableToReadBlob",filename);
+ return((unsigned char *) NULL);
+ }
*length=MagickMin(i+count,extent);
blob[*length]='\0';
return(blob);
@@ -919,8 +925,13 @@
return((unsigned char *) NULL);
}
}
- file=close(file)-1;
blob[*length]='\0';
+ file=close(file);
+ if (file == -1)
+ {
+ blob=(unsigned char *) RelinquishMagickMemory(blob);
+ ThrowFileException(exception,BlobError,"UnableToReadBlob",filename);
+ }
return(blob);
}
@@ -1036,7 +1047,10 @@
break;
}
}
- file=close(file)-1;
+ file=close(file);
+ if (file == -1)
+ ThrowFileException(&image->exception,BlobError,"UnableToWriteBlob",
+ filename);
blob=(unsigned char *) RelinquishMagickMemory(blob);
return(MagickTrue);
}
@@ -1568,9 +1582,9 @@
if (i < length)
break;
}
- file=close(file)-1;
+ file=close(file);
buffer=(unsigned char *) RelinquishMagickMemory(buffer);
- if (i < length)
+ if ((file == -1) || (i < length))
{
ThrowFileException(exception,BlobError,"UnableToWriteBlob",filename);
return(MagickFalse);
@@ -1870,7 +1884,9 @@
status=WriteBlobStream(image,(size_t) count,buffer) == count ? MagickTrue :
MagickFalse;
}
- file=close(file)-1;
+ file=close(file);
+ if (file == -1)
+ ThrowFileException(exception,FileOpenError,"UnableToWriteBlob",filename);
(void) RelinquishUniqueFileResource(filename);
buffer=(unsigned char *) RelinquishMagickMemory(buffer);
return(status);
diff --git a/magick/magic.c b/magick/magic.c
index 7dab509..9ce446b 100644
--- a/magick/magic.c
+++ b/magick/magic.c
@@ -132,6 +132,7 @@
{ "JPEG", 0, MagickString("\377\330\377") },
{ "JPC", 0, MagickString("\377\117") },
{ "JP2", 4, MagickString("\152\120\040\040\015") },
+ { "MAT", 0, MagickString("MATLAB 5.0 MAT-file,") },
{ "MIFF", 0, MagickString("Id=ImageMagick") },
{ "MIFF", 0, MagickString("id=ImageMagick") },
{ "MNG", 0, MagickString("\212MNG\r\n\032\n") },
diff --git a/magick/version.h b/magick/version.h
index f5c1ab2..55721b8 100644
--- a/magick/version.h
+++ b/magick/version.h
@@ -30,10 +30,10 @@
#define MagickLibVersion 0x662
#define MagickLibVersionText "6.6.2"
#define MagickLibVersionNumber 3,0,0
-#define MagickLibAddendum "-8"
+#define MagickLibAddendum "-9"
#define MagickLibInterface 3
#define MagickLibMinInterface 3
-#define MagickReleaseDate "2010-06-22"
+#define MagickReleaseDate "2010-06-25"
#define MagickChangeDate "20100622"
#define MagickAuthoritativeURL "http://www.imagemagick.org"
#define MagickHomeURL "file:///usr/local/share/doc/ImageMagick-6.6.2/index.html"