diff options
author | Kim Woelders <kim@woelders.dk> | 2021-09-16 09:36:05 +0200 |
---|---|---|
committer | Kim Woelders <kim@woelders.dk> | 2021-12-28 16:08:06 +0100 |
commit | bf93574b8bd2eb315bf1a76dce6e5730eebd2018 (patch) | |
tree | a896456eae7494de57f84d7f90c01f28f5c4a60e /src/modules/loaders/loader_ico.c | |
parent | f3db9c99b687030634f9f89818eb9c7361718e77 (diff) | |
download | imlib2-bf93574b8bd2eb315bf1a76dce6e5730eebd2018.tar.gz |
Introduce more loader return codes
Used to avoid potentially wasting time trying to load corrupt images
by trying loaders which won't recognize the image anyway.
Diffstat (limited to 'src/modules/loaders/loader_ico.c')
-rw-r--r-- | src/modules/loaders/loader_ico.c | 9 |
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; } |