unsigned currentx, currenty, currentn;
int read_state;
- unsigned long offsets[];
+ unsigned long offsets[FLEXIBLE_ARRAY_MEMBER];
};
-static struct lbx_image_priv *lbx_img_init(unsigned char hdr[static HDR_LEN])
+static struct lbx_image_priv *lbx_img_init(unsigned char *hdr)
{
unsigned short nframes = unpack_16_le(hdr+6);
struct lbx_image_priv *img;
return -1;
}
- if (!(img->flags & FLAG_RAW)) {
- /* Skip padding byte, if any */
- if (img->currentn % 2) {
- if (img->fops->seek(img->f, 1, SEEK_CUR))
- return -1;
+ if (!(img->flags & FLAG_RAW) && img->currentn % 2) {
+ unsigned char c;
+
+ /* Skip padding byte */
+ if (img->fops->read(&c, 1, img->f) != 1) {
+ if (img->fops->eof(img->f))
+ lbx_error_raise(LBX_EEOF);
+ return -1;
}
}