From 5c17ab8c0a5b2f66dac19031fd5394377cf375bb Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Thu, 30 Jan 2014 22:17:43 -0500 Subject: [PATCH] liblbx: Add a hard check for image leadin versus frame count. Our "official" image spec says that the leadin is a frame number, so it does not make sense for the leadin to be greater than or equal to the frame count. Convert the existing "soft" check into a hard failure. --- src/image.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/image.c b/src/image.c index 27c8273..adc6a43 100644 --- a/src/image.c +++ b/src/image.c @@ -93,6 +93,12 @@ static struct lbx_image_priv *lbx_img_init(unsigned char hdr[static HDR_LEN]) if (img->flags & FLAG_LOOPING) img->pub.leadin = 0; + if (img->pub.leadin >= img->pub.frames) { + lbx_error_raise(LBX_EFORMAT); + free(img); + return NULL; + } + return img; } @@ -124,7 +130,6 @@ struct lbx_image *lbx_img_open(void *f, const struct lbx_file_ops *fops, */ _lbx_assert(img->wtf == 0); /* version? */ _lbx_assert(img->wtf2 == 0); /* very likely is simply reserved. */ - _lbx_assert(img->pub.frames > img->pub.leadin); _lbx_assert(!(img->flags & ~FLAG_ALL)); /* Read all offsets. Should be merged with identical code in lbx.c */ -- 2.43.0