evas: actually check if loading header was fine.
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 6 May 2011 09:01:18 +0000 (09:01 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 6 May 2011 09:01:18 +0000 (09:01 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@59232 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/modules/loaders/psd/evas_image_load_psd.c

index f17e89d..f15f938 100644 (file)
@@ -141,6 +141,7 @@ evas_image_load_file_head_psd(Image_Entry *ie, const char *FileName,
 {
    FILE        *f;
    PSD_Header header;
+   Eina_Bool correct;
 
    *error = EVAS_LOAD_ERROR_NONE;
 
@@ -150,10 +151,10 @@ evas_image_load_file_head_psd(Image_Entry *ie, const char *FileName,
         *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
         return EINA_FALSE;
      }
-   psd_get_header(&header, f);
+   correct = psd_get_header(&header, f);
    fclose(f);
 
-   if (!is_psd(&header))
+   if (!correct || !is_psd(&header))
      {
         *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
         return EINA_FALSE;
@@ -846,9 +847,9 @@ evas_image_load_file_data_psd(Image_Entry *ie,
         return bpsd;
      }
 
-   psd_get_header(&header, f);
-   if (!is_psd(&header))
+   if (!psd_get_header(&header, f) || !is_psd(&header))
      {
+        fclose(f);
         *error = EVAS_LOAD_ERROR_GENERIC;
         return EINA_FALSE;
      }