This is an automated email from the ASF dual-hosted git repository.

bcall pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new 070e3d426f Fix uninitialized members and variables flagged by 
Coverity. (#13000)
070e3d426f is described below

commit 070e3d426fd63073b1e01a339598b9ee67baa829
Author: Bryan Call <[email protected]>
AuthorDate: Thu Mar 19 14:41:41 2026 -0700

    Fix uninitialized members and variables flagged by Coverity. (#13000)
    
    Use explicit brace initialization for pointer, scalar, and zlib
    state members so construction starts from a defined state. Initialize
    local Feature values in txn_box to NIL_FEATURE. Remove unused
    tls_server_connection member from SSLConfigParams.
    
    CIDs: 1295339, 1521595, 1521596, 1533662, 1534699, 1534717,
    1534727, 1534732, 1534738, 1587251, 1644248.
---
 include/iocore/net/TLSEventSupport.h                  |  2 +-
 include/proxy/hdrs/HdrHeap.h                          |  2 +-
 plugins/esi/lib/EsiGunzip.cc                          |  9 ---------
 plugins/esi/lib/EsiGunzip.h                           | 12 ++++++------
 plugins/esi/lib/EsiGzip.cc                            |  7 -------
 plugins/esi/lib/EsiGzip.h                             | 10 +++++-----
 plugins/experimental/txn_box/plugin/src/Ex_HTTP.cc    | 10 +++++-----
 plugins/experimental/txn_box/plugin/src/text_block.cc |  2 +-
 src/iocore/net/P_SSLConfig.h                          |  5 ++---
 9 files changed, 21 insertions(+), 38 deletions(-)

diff --git a/include/iocore/net/TLSEventSupport.h 
b/include/iocore/net/TLSEventSupport.h
index e46220d784..e8904d26f8 100644
--- a/include/iocore/net/TLSEventSupport.h
+++ b/include/iocore/net/TLSEventSupport.h
@@ -78,7 +78,7 @@ protected:
 
 private:
   static int _ex_data_index;
-  SSL       *_ssl;
+  SSL       *_ssl{nullptr};
 
   bool _first_handshake_hooks_pre          = true;
   bool _first_handshake_hooks_outbound_pre = true;
diff --git a/include/proxy/hdrs/HdrHeap.h b/include/proxy/hdrs/HdrHeap.h
index 0966ff40e5..75a3620a07 100644
--- a/include/proxy/hdrs/HdrHeap.h
+++ b/include/proxy/hdrs/HdrHeap.h
@@ -148,7 +148,7 @@ private:
   HdrStrHeap(uint32_t total_size) : _total_size{total_size} {}
 
   uint32_t const _total_size;
-  uint32_t       _avail_size;
+  uint32_t       _avail_size{0};
 };
 
 inline bool
diff --git a/plugins/esi/lib/EsiGunzip.cc b/plugins/esi/lib/EsiGunzip.cc
index 47afa954af..ec1341d818 100644
--- a/plugins/esi/lib/EsiGunzip.cc
+++ b/plugins/esi/lib/EsiGunzip.cc
@@ -30,15 +30,6 @@
 using std::string;
 using namespace EsiLib;
 
-EsiGunzip::EsiGunzip() : _downstream_length(0), _total_data_length(0)
-{
-  _init    = false;
-  _success = true;
-  // zlib _zstrm variables are initialized when they are required in 
stream_decode
-  // coverity[uninit_member]
-  // coverity[uninit_ctor]
-}
-
 bool
 EsiGunzip::stream_finish()
 {
diff --git a/plugins/esi/lib/EsiGunzip.h b/plugins/esi/lib/EsiGunzip.h
index b8467403f9..9624548409 100644
--- a/plugins/esi/lib/EsiGunzip.h
+++ b/plugins/esi/lib/EsiGunzip.h
@@ -30,7 +30,7 @@
 class EsiGunzip
 {
 public:
-  EsiGunzip();
+  EsiGunzip() = default;
 
   ~EsiGunzip();
 
@@ -45,10 +45,10 @@ public:
   bool stream_finish();
 
 private:
-  int64_t  _downstream_length;
-  int64_t  _total_data_length;
-  z_stream _zstrm;
+  int64_t  _downstream_length{0};
+  int64_t  _total_data_length{0};
+  z_stream _zstrm{};
 
-  bool _init;
-  bool _success;
+  bool _init{false};
+  bool _success{true};
 };
diff --git a/plugins/esi/lib/EsiGzip.cc b/plugins/esi/lib/EsiGzip.cc
index 789b79d84e..aeec64c99f 100644
--- a/plugins/esi/lib/EsiGzip.cc
+++ b/plugins/esi/lib/EsiGzip.cc
@@ -30,13 +30,6 @@
 using std::string;
 using namespace EsiLib;
 
-EsiGzip::EsiGzip() : _downstream_length(0), _total_data_length(0), _crc(0)
-{
-  // Zlib _zstrm variables are initialized when they are required in 
runDeflateLoop
-  // coverity[uninit_member]
-  // coverity[uninit_ctor]
-}
-
 template <typename T>
 inline void
 append(string &out, T data)
diff --git a/plugins/esi/lib/EsiGzip.h b/plugins/esi/lib/EsiGzip.h
index fc8204ae10..e15cdd24fe 100644
--- a/plugins/esi/lib/EsiGzip.h
+++ b/plugins/esi/lib/EsiGzip.h
@@ -31,7 +31,7 @@
 class EsiGzip
 {
 public:
-  EsiGzip();
+  EsiGzip() = default;
 
   ~EsiGzip();
 
@@ -65,12 +65,12 @@ public:
 
 private:
   /** The cumulative total number of bytes for the compressed stream. */
-  int64_t _downstream_length;
+  int64_t _downstream_length{0};
 
   /** The cumulative total number of uncompressed bytes that have been
    * compressed.
    */
-  int64_t  _total_data_length;
-  z_stream _zstrm;
-  uLong    _crc;
+  int64_t  _total_data_length{0};
+  z_stream _zstrm{};
+  uLong    _crc{0};
 };
diff --git a/plugins/experimental/txn_box/plugin/src/Ex_HTTP.cc 
b/plugins/experimental/txn_box/plugin/src/Ex_HTTP.cc
index 71377b0fa6..367553e9bd 100644
--- a/plugins/experimental/txn_box/plugin/src/Ex_HTTP.cc
+++ b/plugins/experimental/txn_box/plugin/src/Ex_HTTP.cc
@@ -557,7 +557,7 @@ Ex_ua_req_port::validate(Config &, Spec &, const 
swoc::TextView &)
 Feature
 Ex_ua_req_port::extract(Context &ctx, Spec const &)
 {
-  Feature zret{};
+  Feature zret{NIL_FEATURE};
   if (auto hdr{ctx.ua_req_hdr()}; hdr.is_valid()) {
     if (ts::URL url{hdr.url()}; url.is_valid()) {
       zret = static_cast<feature_type_for<INTEGER>>(url.port());
@@ -585,7 +585,7 @@ Ex_proxy_req_port::validate(Config &, Spec &, const 
swoc::TextView &)
 Feature
 Ex_proxy_req_port::extract(Context &ctx, Spec const &)
 {
-  Feature zret{};
+  Feature zret{NIL_FEATURE};
   if (auto hdr{ctx.proxy_req_hdr()}; hdr.is_valid()) {
     if (ts::URL url{hdr.url()}; url.is_valid()) {
       zret = static_cast<feature_type_for<INTEGER>>(url.port());
@@ -1022,7 +1022,7 @@ Ex_pre_remap_port::validate(Config &, Spec &, const 
swoc::TextView &)
 Feature
 Ex_pre_remap_port::extract(Context &ctx, Spec const &)
 {
-  Feature zret{};
+  Feature zret{NIL_FEATURE};
   if (auto url{ctx._txn.pristine_url_get()}; url.is_valid()) {
     zret = static_cast<feature_type_for<INTEGER>>(url.port());
   }
@@ -1048,7 +1048,7 @@ Ex_remap_target_port::validate(Config &, Spec &, const 
swoc::TextView &)
 Feature
 Ex_remap_target_port::extract(Context &ctx, Spec const &)
 {
-  Feature zret{};
+  Feature zret{NIL_FEATURE};
   if (ctx._remap_info) {
     if (ts::URL url{ctx._remap_info->requestBufp, 
ctx._remap_info->mapFromUrl}; url.is_valid()) {
       zret = static_cast<feature_type_for<INTEGER>>(url.port());
@@ -1077,7 +1077,7 @@ Ex_remap_replacement_port::validate(Config &, Spec &, 
const swoc::TextView &)
 Feature
 Ex_remap_replacement_port::extract(Context &ctx, Spec const &)
 {
-  Feature zret{};
+  Feature zret{NIL_FEATURE};
   if (ctx._remap_info) {
     if (ts::URL url{ctx._remap_info->requestBufp, ctx._remap_info->mapToUrl}; 
url.is_valid()) {
       zret = static_cast<feature_type_for<INTEGER>>(url.port());
diff --git a/plugins/experimental/txn_box/plugin/src/text_block.cc 
b/plugins/experimental/txn_box/plugin/src/text_block.cc
index 4b34091273..01644c2790 100644
--- a/plugins/experimental/txn_box/plugin/src/text_block.cc
+++ b/plugins/experimental/txn_box/plugin/src/text_block.cc
@@ -480,7 +480,7 @@ Mod_as_text_block::load(Config &cfg, YAML::Node, TextView, 
TextView, YAML::Node
 Rv<Feature>
 Mod_as_text_block::operator()(Context &ctx, Feature &feature)
 {
-  Feature zret{};
+  Feature zret{NIL_FEATURE};
   if (IndexFor(STRING) == feature.index()) {
     auto const &tag = std::get<IndexFor(STRING)>(feature); // get the name.
     zret            = Ex_text_block::extract_block(ctx, tag);
diff --git a/src/iocore/net/P_SSLConfig.h b/src/iocore/net/P_SSLConfig.h
index 12f8afd626..135d25a5c9 100644
--- a/src/iocore/net/P_SSLConfig.h
+++ b/src/iocore/net/P_SSLConfig.h
@@ -68,8 +68,8 @@ struct SSLConfigParams : public ConfigInfo {
   int   configExitOnLoadError;
   int   clientCertLevel;
   int   verify_depth;
-  int   ssl_origin_session_cache;
-  int   ssl_origin_session_cache_size;
+  int   ssl_origin_session_cache{0};
+  int   ssl_origin_session_cache_size{0};
 
   char                   *clientCertPath;
   char                   *clientCertPathOnly;
@@ -80,7 +80,6 @@ struct SSLConfigParams : public ConfigInfo {
   int                     clientCertExitOnLoadError;
   YamlSNIConfig::Policy   verifyServerPolicy;
   YamlSNIConfig::Property verifyServerProperties;
-  bool                    tls_server_connection;
   int                     client_verify_depth;
   long                    ssl_ctx_options;
   long                    ssl_client_ctx_options;

Reply via email to