From a9ed0916785fa69b4a6e8b045405fb522431b064 Mon Sep 17 00:00:00 2001 From: Jerry Xiao Date: Mon, 12 Oct 2026 06:37:23 +0000 Subject: [PATCH] seekable_format: return -1 from unreachable default in seek callbacks With -DNDEBUG, assert(0) in the default case of the buffer seek callbacks compiles away, so newOffset is read uninitialized and gcc warns with -Wmaybe-uninitialized. Return -1 (the error value the callback already uses for an out-of-range offset) after the assert, in ZSTD_seekable_seek_buff() and the copy in seekable_tests.c. --- contrib/seekable_format/tests/seekable_tests.c | 1 + contrib/seekable_format/zstdseek_decompress.c | 1 + 2 files changed, 2 insertions(+) diff --git a/contrib/seekable_format/tests/seekable_tests.c b/contrib/seekable_format/tests/seekable_tests.c index 809ea6425eb..c50bc6dff79 100644 --- a/contrib/seekable_format/tests/seekable_tests.c +++ b/contrib/seekable_format/tests/seekable_tests.c @@ -45,6 +45,7 @@ static int seekBuffWithTotal(void* opaque, long long offset, int origin) break; default: assert(0); /* not possible */ + return -1; } if (newOffset > buff->size) { return -1; diff --git a/contrib/seekable_format/zstdseek_decompress.c b/contrib/seekable_format/zstdseek_decompress.c index ab9088a1061..ce08917ec1c 100644 --- a/contrib/seekable_format/zstdseek_decompress.c +++ b/contrib/seekable_format/zstdseek_decompress.c @@ -186,6 +186,7 @@ static int ZSTD_seekable_seek_buff(void* opaque, long long offset, int origin) break; default: assert(0); /* not possible */ + return -1; } if (newOffset > buff->size) { return -1;