X-Git-Url: https://git.draconx.ca/gitweb/liblbx.git/blobdiff_plain/0ae0a344200291ae958fcb3c9c3ece9c5b604f6e..8325f5adeef29ffc7032c832d525a0822e19d74c:/src/image.c diff --git a/src/image.c b/src/image.c index 4f1a2bd..2b1c211 100644 --- a/src/image.c +++ b/src/image.c @@ -267,7 +267,7 @@ lbximg_getpalette(struct lbx_image *img, struct lbx_colour palette[static 256]) 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. */ @@ -279,17 +279,17 @@ lbximg_getpalette(struct lbx_image *img, struct lbx_colour palette[static 256]) 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; } @@ -307,7 +307,7 @@ lbximg_getpalette(struct lbx_image *img, struct lbx_colour palette[static 256]) 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,