X-Git-Url: https://git.draconx.ca/gitweb/liblbx.git/blobdiff_plain/5c17ab8c0a5b2f66dac19031fd5394377cf375bb..567ed0920d13037a60c73b5a596ea45cacbeb001:/src/image.c diff --git a/src/image.c b/src/image.c index adc6a43..24dce99 100644 --- a/src/image.c +++ b/src/image.c @@ -65,7 +65,7 @@ struct lbx_image_priv { unsigned long offsets[]; }; -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; @@ -313,11 +313,14 @@ long lbx_img_read_row_data(struct lbx_image *pub, void *buf) 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; } }