summaryrefslogtreecommitdiff
path: root/src/modules/loaders/loader_ico.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/loaders/loader_ico.c')
-rw-r--r--src/modules/loaders/loader_ico.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/modules/loaders/loader_ico.c b/src/modules/loaders/loader_ico.c
index b957953..e8cef41 100644
--- a/src/modules/loaders/loader_ico.c
+++ b/src/modules/loaders/loader_ico.c
@@ -398,7 +398,7 @@ load2(ImlibImage * im, int load_data)
fdata = mmap(NULL, im->fsize, PROT_READ, MAP_SHARED, fileno(im->fp), 0);
if (fdata == MAP_FAILED)
- return rc;
+ return LOAD_BADFILE;
mm_init(fdata, im->fsize);
@@ -416,7 +416,7 @@ load2(ImlibImage * im, int load_data)
ico.ie = calloc(ico.idir.icons, sizeof(ie_t));
if (!ico.ie)
- goto quit;
+ QUIT_WITH_RC(LOAD_OOM);
D("Loading '%s' Nicons = %d\n", im->real_file, ico.idir.icons);
@@ -426,6 +426,8 @@ load2(ImlibImage * im, int load_data)
ico_read_icon(&ico, i);
}
+ rc = LOAD_BADIMAGE; /* Format accepted */
+
if (ico_load(&ico, im, load_data))
{
if (im->lc)
@@ -437,8 +439,7 @@ load2(ImlibImage * im, int load_data)
ico_delete(&ico);
if (rc <= 0)
__imlib_FreeData(im);
- if (fdata != MAP_FAILED)
- munmap(fdata, im->fsize);
+ munmap(fdata, im->fsize);
return rc;
}