kwo pushed a commit to branch master.

http://git.enlightenment.org/legacy/imlib2.git/commit/?id=51a48ecfe97e32cc5797a3bee03a85ab5cb11207

commit 51a48ecfe97e32cc5797a3bee03a85ab5cb11207
Author: Kim Woelders <k...@woelders.dk>
Date:   Wed Mar 7 19:35:30 2018 +0100

    BMP loader: Fix infinite loop with invalid bmp images (T6749)
    
    https://phab.enlightenment.org/T6749
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=773968
---
 src/modules/loaders/loader_bmp.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/modules/loaders/loader_bmp.c b/src/modules/loaders/loader_bmp.c
index 2d15ba5..3fcc17e 100644
--- a/src/modules/loaders/loader_bmp.c
+++ b/src/modules/loaders/loader_bmp.c
@@ -235,6 +235,17 @@ load(ImlibImage * im, ImlibProgressFunction progress,
                 ReadleLong(f, &rmask);
                 ReadleLong(f, &gmask);
                 ReadleLong(f, &bmask);
+                if (bitcount == 16)
+                  {
+                     rmask &= 0xffffU;
+                     gmask &= 0xffffU;
+                     bmask &= 0xffffU;
+                  }
+                if (rmask == 0 || gmask == 0 || bmask == 0)
+                  {
+                     fclose(f);
+                     return 0;
+                  }
                 for (bit = bitcount - 1; bit >= 0; bit--)
                   {
                      if (bmask & (1 << bit))

-- 


Reply via email to