mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
In C, operands of '<<' are subject to integer promotion. So the unsigned char array elements are promoted to signed int and then shifted producing signed overflow — undefined behaviour in C. Fix this by first casting to uint32_t and then shift. Assisted-by: IBM Bob:2.0.0 Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com> Reviewed-by: Finn Callies <fcallies@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>