From e04ddba64f4c389b33b07dba6adb89f3492b151c Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Fri, 27 Aug 2021 13:17:09 +0200 Subject: [PATCH] avformat/utils: Don't compare pointers when sorting chapters The chapters are independently allocated, so that comparing the pointers is undefined behaviour. Furthermore, its result is not platform-independent (and may not even be deterministic on a particular platform). So compare the chapters' ids instead. (avpriv_new_chapter() ensures that there are no duplicate ids.) Reviewed-by: Paul B Mahol Signed-off-by: Andreas Rheinhardt --- libavformat/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 78bfb36cd0..264b5b1a4b 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3160,7 +3160,7 @@ static int chapter_start_cmp(const void *p1, const void *p2) int delta = av_compare_ts(ch1->start, ch1->time_base, ch2->start, ch2->time_base); if (delta) return delta; - return (ch1 > ch2) - (ch1 < ch2); + return FFDIFFSIGN(ch1->id, ch2->id); } static int compute_chapters_end(AVFormatContext *s)