unsigned int i;
size_t rc;
- uint16_t zero, count;
+ uint16_t start, count;
uint8_t entry[4];
/* Do nothing if the image doesn't have embedded palette data. */
return -1;
/* Palette header */
- if (fread(&zero, sizeof zero, 1, img->f) != 1) goto readerr;
+ if (fread(&start, sizeof start, 1, img->f) != 1) goto readerr;
if (fread(&count, sizeof count, 1, img->f) != 1) goto readerr;
- zero = letohs(zero); img->foff += sizeof zero;
+ start = letohs(start); img->foff += sizeof start;
count = letohs(count); img->foff += sizeof count;
- if (zero != 0 || count > 256) {
+ if (start + count > 256) {
lbx_errno = LBX_EFORMAT;
return -1;
}
- if (hdrlen + 2*(sizeof zero) + count*(sizeof entry) > img->offsets[0]) {
+ if (hdrlen + 2*sizeof start + count*sizeof entry > img->offsets[0]) {
lbx_errno = LBX_EFORMAT;
return -1;
}
return -1;
}
- palette[i] = (struct lbx_colour){
+ palette[start + i] = (struct lbx_colour){
.red = entry[1] << 2,
.green = entry[2] << 2,
.blue = entry[3] << 2,