From 39b5abd764ca1114c8413b6dcf2da2a617d6eb4f Mon Sep 17 00:00:00 2001 From: Foxpunk Date: Wed, 22 Jul 2026 16:53:22 +0300 Subject: [PATCH 1/9] Add fb_assert for time(&session.ses_start) --- src/jrd/trace/TraceConfigStorage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jrd/trace/TraceConfigStorage.cpp b/src/jrd/trace/TraceConfigStorage.cpp index 67ea28fee70..b8ca7c9d452 100644 --- a/src/jrd/trace/TraceConfigStorage.cpp +++ b/src/jrd/trace/TraceConfigStorage.cpp @@ -716,7 +716,7 @@ void ConfigStorage::addSession(TraceSession& session) session.ses_flags |= trs_active; slot->ses_flags = session.ses_flags; time(&session.ses_start); - + fb_assert(session.ses_start != (time_t) -1); char* p = reinterpret_cast (header) + slot->offset; Writer writer(p, slot->size); From bd2710abc3accb3b73d0a52d3954369274ccc469 Mon Sep 17 00:00:00 2001 From: Foxpunk Date: Wed, 22 Jul 2026 17:04:28 +0300 Subject: [PATCH 2/9] add [[maybe_unused]] and fb_assert for fseek --- src/jrd/trace/TraceConfigStorage.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/jrd/trace/TraceConfigStorage.cpp b/src/jrd/trace/TraceConfigStorage.cpp index b8ca7c9d452..8081b06d4be 100644 --- a/src/jrd/trace/TraceConfigStorage.cpp +++ b/src/jrd/trace/TraceConfigStorage.cpp @@ -243,11 +243,13 @@ void ConfigStorage::checkAudit() TraceSession session(*getDefaultMemoryPool()); - fseek(cfgFile, 0, SEEK_END); + [[maybe_unused]] int fseekResult = fseek(cfgFile, 0, SEEK_END); + fb_assert(fseekResult == 0); const long len = ftell(cfgFile); if (len) { - fseek(cfgFile, 0, SEEK_SET); + fseekResult = fseek(cfgFile, 0, SEEK_SET); + fb_assert(fseekResult == 0); char* p = session.ses_config.getBuffer(len + 1); if (fread(p, 1, len, cfgFile) != size_t(len)) { From 48f1804801e1d8405183e2587eccf7e097ed20ea Mon Sep 17 00:00:00 2001 From: Foxpunk Date: Wed, 22 Jul 2026 18:26:17 +0300 Subject: [PATCH 3/9] add [[maybe_unused]] and fb_assert for snprintf --- src/jrd/trace/TraceConfigStorage.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jrd/trace/TraceConfigStorage.cpp b/src/jrd/trace/TraceConfigStorage.cpp index 8081b06d4be..f7ce8fe8c4c 100644 --- a/src/jrd/trace/TraceConfigStorage.cpp +++ b/src/jrd/trace/TraceConfigStorage.cpp @@ -178,7 +178,8 @@ void ConfigStorage::shutdown() void ConfigStorage::mutexBug(int state, const char* string) { TEXT msg[BUFFER_TINY]; - snprintf(msg, sizeof(msg), "ConfigStorage: mutex %s error, status = %d", string, state); + [[maybe_unused]] const int len = snprintf(msg, sizeof(msg), "ConfigStorage: mutex %s error, status = %d", string, state); + fb_assert(len >= 0 && len < (int) sizeof(msg)); fb_utils::logAndDie(msg); } From d7745f37b366fbd1477b242281157d6ab42f06f2 Mon Sep 17 00:00:00 2001 From: Foxpunk Date: Thu, 23 Jul 2026 20:20:44 +0300 Subject: [PATCH 4/9] add fb_assert and [[maybe_unused]] for mutexBug --- src/jrd/trace/TraceLog.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jrd/trace/TraceLog.cpp b/src/jrd/trace/TraceLog.cpp index ad024044f39..1f728f89000 100644 --- a/src/jrd/trace/TraceLog.cpp +++ b/src/jrd/trace/TraceLog.cpp @@ -299,7 +299,8 @@ void TraceLog::setFullMsg(const char* str) void TraceLog::mutexBug(int state, const char* string) { TEXT msg[BUFFER_TINY]; - snprintf(msg, sizeof(msg), "TraceLog: mutex %s error, status = %d", string, state); + [[maybe_unused]] const int len = snprintf(msg, sizeof(msg), "TraceLog: mutex %s error, status = %d", string, state); + fb_assert(len >= 0 && len < (int) sizeof(msg)); fb_utils::logAndDie(msg); } From f7d6d41bd99588240cfd4ea26e5b596012c71272 Mon Sep 17 00:00:00 2001 From: Foxpunk Date: Thu, 23 Jul 2026 16:47:33 +0300 Subject: [PATCH 5/9] add default: fb_assert(false) for switch action_sw->in_sw --- src/jrd/trace/TraceCmdLine.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/jrd/trace/TraceCmdLine.cpp b/src/jrd/trace/TraceCmdLine.cpp index b5fee6282ee..e69b9d1ea8c 100644 --- a/src/jrd/trace/TraceCmdLine.cpp +++ b/src/jrd/trace/TraceCmdLine.cpp @@ -210,6 +210,9 @@ void fbtrace(UtilSvc* uSvc, TraceSvcIntf* traceSvc) case IN_SW_TRACE_LIST: usage(uSvc, isc_trace_param_act_notcompat, sw->in_sw_name, action_sw->in_sw_name); break; + default: + fb_assert(false); + break; } if (!session.ses_config.empty()) @@ -231,6 +234,9 @@ void fbtrace(UtilSvc* uSvc, TraceSvcIntf* traceSvc) case IN_SW_TRACE_LIST: usage(uSvc, isc_trace_param_act_notcompat, sw->in_sw_name, action_sw->in_sw_name); break; + default: + fb_assert(false); + break; } if (!session.ses_name.empty()) @@ -250,6 +256,9 @@ void fbtrace(UtilSvc* uSvc, TraceSvcIntf* traceSvc) case IN_SW_TRACE_LIST: usage(uSvc, isc_trace_param_act_notcompat, sw->in_sw_name, action_sw->in_sw_name); break; + default: + fb_assert(false); + break; } if (session.ses_id) @@ -275,6 +284,9 @@ void fbtrace(UtilSvc* uSvc, TraceSvcIntf* traceSvc) case IN_SW_TRACE_LIST: usage(uSvc, isc_trace_param_act_notcompat, sw->in_sw_name, action_sw->in_sw_name); break; + default: + fb_assert(false); + break; } if (!session.ses_plugins.empty()) From d01d964323240ebc780461999af09cf9ad6b70df Mon Sep 17 00:00:00 2001 From: Foxpunk Date: Thu, 23 Jul 2026 19:59:44 +0300 Subject: [PATCH 6/9] add default: fb_assert(false) to fetchPassword switch --- src/jrd/trace/TraceCmdLine.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/jrd/trace/TraceCmdLine.cpp b/src/jrd/trace/TraceCmdLine.cpp index e69b9d1ea8c..ae3875f9195 100644 --- a/src/jrd/trace/TraceCmdLine.cpp +++ b/src/jrd/trace/TraceCmdLine.cpp @@ -386,6 +386,8 @@ void fbtrace(UtilSvc* uSvc, TraceSvcIntf* traceSvc) (Arg::Gds(isc_io_error) << Arg::Str("read") << Arg::Str(fileName) << Arg::Gds(isc_io_read_err) << Arg::OsError()).raise(); break; + default: + fb_assert(false); } } else From d2ed4ff8db264a21f85dfbe5c833a940d7ad7c07 Mon Sep 17 00:00:00 2001 From: Foxpunk Date: Thu, 23 Jul 2026 20:50:59 +0300 Subject: [PATCH 7/9] add default fb_assert(false) for switch (action_sw->in_sw) --- src/jrd/trace/TraceCmdLine.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/jrd/trace/TraceCmdLine.cpp b/src/jrd/trace/TraceCmdLine.cpp index ae3875f9195..baaa7d253ff 100644 --- a/src/jrd/trace/TraceCmdLine.cpp +++ b/src/jrd/trace/TraceCmdLine.cpp @@ -434,6 +434,8 @@ void fbtrace(UtilSvc* uSvc, TraceSvcIntf* traceSvc) case IN_SW_TRACE_RESUME: usage(uSvc, isc_trace_switch_param_miss, "ID", action_sw->in_sw_name); break; + default: + fb_assert(false); } } From a5dbbce9b2dc2e3e25e00450011ff3939a38a8d5 Mon Sep 17 00:00:00 2001 From: Foxpunk Date: Sat, 1 Aug 2026 19:58:47 +0300 Subject: [PATCH 8/9] Use static_cast and clarify fseek result variable names --- src/jrd/trace/TraceConfigStorage.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/jrd/trace/TraceConfigStorage.cpp b/src/jrd/trace/TraceConfigStorage.cpp index f7ce8fe8c4c..9ab6cc0a405 100644 --- a/src/jrd/trace/TraceConfigStorage.cpp +++ b/src/jrd/trace/TraceConfigStorage.cpp @@ -179,7 +179,7 @@ void ConfigStorage::mutexBug(int state, const char* string) { TEXT msg[BUFFER_TINY]; [[maybe_unused]] const int len = snprintf(msg, sizeof(msg), "ConfigStorage: mutex %s error, status = %d", string, state); - fb_assert(len >= 0 && len < (int) sizeof(msg)); + fb_assert(len >= 0 && len < static_cast(sizeof(msg))); fb_utils::logAndDie(msg); } @@ -244,13 +244,13 @@ void ConfigStorage::checkAudit() TraceSession session(*getDefaultMemoryPool()); - [[maybe_unused]] int fseekResult = fseek(cfgFile, 0, SEEK_END); - fb_assert(fseekResult == 0); + [[maybe_unused]] const int resultEnd = fseek(cfgFile, 0, SEEK_END); + fb_assert(resultEnd == 0); const long len = ftell(cfgFile); if (len) { - fseekResult = fseek(cfgFile, 0, SEEK_SET); - fb_assert(fseekResult == 0); + [[maybe_unused]] const int resultSet = fseek(cfgFile, 0, SEEK_SET); + fb_assert(resultSet == 0); char* p = session.ses_config.getBuffer(len + 1); if (fread(p, 1, len, cfgFile) != size_t(len)) { From 2e8d5b95765f29ebfad8318ce47a0f0453eebff9 Mon Sep 17 00:00:00 2001 From: Foxpunk Date: Thu, 6 Aug 2026 17:41:01 +0300 Subject: [PATCH 9/9] do static_cast for len --- src/jrd/trace/TraceConfigStorage.cpp | 2 +- src/jrd/trace/TraceLog.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/jrd/trace/TraceConfigStorage.cpp b/src/jrd/trace/TraceConfigStorage.cpp index 9ab6cc0a405..f349182781c 100644 --- a/src/jrd/trace/TraceConfigStorage.cpp +++ b/src/jrd/trace/TraceConfigStorage.cpp @@ -179,7 +179,7 @@ void ConfigStorage::mutexBug(int state, const char* string) { TEXT msg[BUFFER_TINY]; [[maybe_unused]] const int len = snprintf(msg, sizeof(msg), "ConfigStorage: mutex %s error, status = %d", string, state); - fb_assert(len >= 0 && len < static_cast(sizeof(msg))); + fb_assert(len >= 0 && static_cast(len) < sizeof(msg)); fb_utils::logAndDie(msg); } diff --git a/src/jrd/trace/TraceLog.cpp b/src/jrd/trace/TraceLog.cpp index 1f728f89000..686a335ed70 100644 --- a/src/jrd/trace/TraceLog.cpp +++ b/src/jrd/trace/TraceLog.cpp @@ -300,7 +300,7 @@ void TraceLog::mutexBug(int state, const char* string) { TEXT msg[BUFFER_TINY]; [[maybe_unused]] const int len = snprintf(msg, sizeof(msg), "TraceLog: mutex %s error, status = %d", string, state); - fb_assert(len >= 0 && len < (int) sizeof(msg)); + fb_assert(len >= 0 && static_cast(len) < sizeof(msg)); fb_utils::logAndDie(msg); }