From: cristy <urban-warrior@git.imagemagick.org>
Date: Thu, 27 Dec 2012 00:35:49 +0000 (+0000)
Subject: (no commit message)
X-Git-Tag: 7.0.1-0~4529
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=02ce8cc2e8390efaeb0fa6b707c0c65298608178;p=imagemagick

---

diff --git a/MagickCore/blob.c b/MagickCore/blob.c
index a6f73fd50..be313f67e 100644
--- a/MagickCore/blob.c
+++ b/MagickCore/blob.c
@@ -522,6 +522,8 @@ MagickExport MagickBooleanType CloseBlob(Image *image)
     case FileStream:
     case PipeStream:
     {
+      if (image->blob->synchronize != MagickFalse)
+        status=fsync(fileno(image->blob->file_info.file));
       status=ferror(image->blob->file_info.file);
       break;
     }
@@ -540,8 +542,14 @@ MagickExport MagickBooleanType CloseBlob(Image *image)
       break;
     }
     case FifoStream:
+      break;
     case BlobStream:
+    {
+      if ((image->blob->file_info.file != (FILE *) NULL) &&
+          (image->blob->synchronize != MagickFalse))
+        (void) fsync(fileno(image->blob->file_info.file));
       break;
+    }
   }
   image->blob->status=status < 0 ? MagickTrue : MagickFalse;
   image->blob->size=GetBlobSize(image);
@@ -559,8 +567,6 @@ MagickExport MagickBooleanType CloseBlob(Image *image)
       break;
     case FileStream:
     {
-      if (image->blob->synchronize != MagickFalse)
-        status=fsync(fileno(image->blob->file_info.file));
       status=fclose(image->blob->file_info.file);
       break;
     }
@@ -590,11 +596,7 @@ MagickExport MagickBooleanType CloseBlob(Image *image)
     case BlobStream:
     {
       if (image->blob->file_info.file != (FILE *) NULL)
-        {
-          if (image->blob->synchronize != MagickFalse)
-            (void) fsync(fileno(image->blob->file_info.file));
-          status=fclose(image->blob->file_info.file);
-        }
+        status=fclose(image->blob->file_info.file);
       break;
     }
   }