From c3417ed7fd9239b349921ea15228682586daba88 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 14 May 2014 01:31:18 +0200 Subject: swscale/utils: Add check that ensures that the hardcoded struct offsets are valid Signed-off-by: Michael Niedermayer --- libswscale/swscale_internal.h | 1 + libswscale/utils.c | 2 ++ 2 files changed, 3 insertions(+) (limited to 'libswscale') diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index f40f915fd8..a258f31bb6 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -429,6 +429,7 @@ typedef struct SwsContext { #define UV_OFF_BYTE "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+56" #define DITHER16 "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+64" #define DITHER32 "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+80" +#define DITHER32_INT (11*8+4*4*MAX_FILTER_SIZE*3+80) // value equal to above, used for checking that the struct hasnt been changed by mistake DECLARE_ALIGNED(8, uint64_t, redDither); DECLARE_ALIGNED(8, uint64_t, greenDither); diff --git a/libswscale/utils.c b/libswscale/utils.c index eda1164c52..29c57119e7 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1107,6 +1107,8 @@ SwsContext *sws_alloc_context(void) { SwsContext *c = av_mallocz(sizeof(SwsContext)); + av_assert0(offsetof(SwsContext, redDither) + DITHER32_INT == offsetof(SwsContext, dither32)); + if (c) { c->av_class = &sws_context_class; av_opt_set_defaults(c); -- cgit v1.2.3