Comment 0 for bug 1472523

Revision history for this message
Garima (garima-g) wrote :

libmng version: 2.0.2

In file libmng_pixels.c, there are many functions; those are performing bit format conversion (8bit format to 16 bit, 16bit to 8bit etc.). For format conversion function are doing logical ANDing with Constant that is not logically correct.

e.g. At #15692: *(pDstline+1) = (mng_uint8)(iR && 0xFF);

In above example due to Logical ANDing(&&) in place of bitwise ANDing(&) there is a loss of information stored in LSB’s of iR.

Now, Replaced logical ANDing operator (&&) with bitwise ANDing operator(&)

After correction:

At #15692: *(pDstline+1) = (mng_uint8)(iR & 0xFF);

Many similar changes are applied in libmng_pixel.c, For detail information please check the attached patch file.