Quoting James Almer (2021-05-27 17:06:57) > Signed-off-by: James Almer <jamr...@gmail.com> > --- > libavutil/mem.h | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/libavutil/mem.h b/libavutil/mem.h > index e21a1feaae..c876111afb 100644 > --- a/libavutil/mem.h > +++ b/libavutil/mem.h > @@ -674,11 +674,18 @@ void *av_dynarray2_add(void **tab_ptr, int *nb_ptr, > size_t elem_size, > */ > static inline int av_size_mult(size_t a, size_t b, size_t *r) > { > - size_t t = a * b; > + size_t t; > + > +#if (!defined(__INTEL_COMPILER) && AV_GCC_VERSION_AT_LEAST(5,1)) || > AV_HAS_BUILTIN(__builtin_mul_overflow) > + if (__builtin_mul_overflow(a, b, &t)) > + return AVERROR(EINVAL); > +#else > + t = a * b; > /* Hack inspired from glibc: don't try the division if nelem and elsize > * are both less than sqrt(SIZE_MAX). */ > if ((a | b) >= ((size_t)1 << (sizeof(size_t) * 4)) && a && t / a != b) > return AVERROR(EINVAL); > +#endif > *r = t; > return 0; > } > -- > 2.31.1
This is starting to look way too ugly for something exposed in a public header. -- Anton Khirnov _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".