diff mbox series

[FFmpeg-devel] fftools/ffmpeg: prefer real errors over EOF in err_merge()

Message ID 20240723131606.13307-1-anton@khirnov.net
State New
Headers show
Series [FFmpeg-devel] fftools/ffmpeg: prefer real errors over EOF in err_merge() | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Anton Khirnov July 23, 2024, 1:16 p.m. UTC
Fixes an issue in 6.1 when reading a corrupted file with -xerror would
exit with success. This specific issue is not present in master, but
this should generally be a more robust behaviour.

Reported-by: Andrej Peterka
---
 fftools/ffmpeg_utils.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/fftools/ffmpeg_utils.h b/fftools/ffmpeg_utils.h
index bd225abc38..7939e44cdc 100644
--- a/fftools/ffmpeg_utils.h
+++ b/fftools/ffmpeg_utils.h
@@ -35,11 +35,12 @@  typedef struct Timestamp {
 /**
  * Merge two return codes - return one of the error codes if at least one of
  * them was negative, 0 otherwise.
- * Currently just picks the first one, eventually we might want to do something
- * more sophisticated, like sorting them by priority.
  */
 static inline int err_merge(int err0, int err1)
 {
+    // prefer "real" errors over EOF
+    if ((err0 >= 0 || err0 == AVERROR_EOF) && err1 < 0)
+        return err1;
     return (err0 < 0) ? err0 : FFMIN(err1, 0);
 }