Bug report - GZ magic check always fails in uImage_gz_load

McLaughlin Amy amy.mclaughlin at hubersuhner.com
Thu Nov 21 06:24:47 PST 2024


I tried adding -Wextra to Kexec's makefile, while compiling some work by a colleague that built on the kexec source. It spotted the following:

```
kexec/kexec-uImage.c: In function 'uImage_gz_load':
kexec/kexec-uImage.c:160:31: warning: comparison is always true due to limited range of data type [-Wtype-limits]
  160 |  if (buf[0] != 0x1f || buf[1] != 0x8b) {
      |                               ^~
```

With buf being an array of signed char, buf[1] cannot equal 0x8b without a cast, meaning that this function will always return -1 early on. Maybe representing it as an array of uint8_t/unsigned char would have been a better idea?



More information about the kexec mailing list