You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2014/09/30 21:22:50 UTC

git commit: Coverity fixes.

Repository: trafficserver
Updated Branches:
  refs/heads/master f16c7615a -> b6753338f


Coverity fixes.


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/b6753338
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/b6753338
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/b6753338

Branch: refs/heads/master
Commit: b6753338fa49c05f828e372545daa91a3d9ec733
Parents: f16c761
Author: Alan M. Carroll <am...@network-geographics.com>
Authored: Tue Sep 30 14:22:10 2014 -0500
Committer: Alan M. Carroll <am...@network-geographics.com>
Committed: Tue Sep 30 14:22:26 2014 -0500

----------------------------------------------------------------------
 lib/tsconfig/Errata.h          |   2 +-
 lib/tsconfig/NumericType.h     |   1 +
 lib/tsconfig/TsBuilder.cc      |   1 +
 lib/tsconfig/TsBuilder.h       | 108 ++++++++++++++++++------------------
 lib/tsconfig/TsConfigGrammar.c |   2 +-
 lib/tsconfig/TsConfigGrammar.y |   2 +-
 lib/tsconfig/TsConfigSyntax.c  |   2 +-
 lib/tsconfig/TsConfigSyntax.l  |   2 +-
 lib/tsconfig/TsConfigTypes.h   |   4 +-
 lib/tsconfig/TsErrataUtil.cc   |  38 +++++++++----
 lib/tsconfig/TsValue.h         |   4 +-
 11 files changed, 92 insertions(+), 74 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/Errata.h
----------------------------------------------------------------------
diff --git a/lib/tsconfig/Errata.h b/lib/tsconfig/Errata.h
index 5c1d144..6f56a7d 100644
--- a/lib/tsconfig/Errata.h
+++ b/lib/tsconfig/Errata.h
@@ -905,7 +905,7 @@ inline bool RvBase::isOK() const { return _errata; }
 inline void RvBase::clear() { _errata.clear(); }
 inline void RvBase::doNotLog() { _errata.doNotLog(); }
 
-template < typename T > Rv<T>::Rv() { }
+template < typename T > Rv<T>::Rv() : _result()  { }
 template < typename T > Rv<T>::Rv(Result const& r) : _result(r) { }
 template < typename T > Rv<T>::Rv(Result const& r, Errata const& errata)
   : super(errata)

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/NumericType.h
----------------------------------------------------------------------
diff --git a/lib/tsconfig/NumericType.h b/lib/tsconfig/NumericType.h
index 6216187..8d6387b 100644
--- a/lib/tsconfig/NumericType.h
+++ b/lib/tsconfig/NumericType.h
@@ -149,6 +149,7 @@ public:
     self operator --(int);
 
 private:
+    // coverity[uninit_member]
     raw_type   _t;
 };
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/TsBuilder.cc
----------------------------------------------------------------------
diff --git a/lib/tsconfig/TsBuilder.cc b/lib/tsconfig/TsBuilder.cc
index efba4bb..59e2b92 100644
--- a/lib/tsconfig/TsBuilder.cc
+++ b/lib/tsconfig/TsBuilder.cc
@@ -62,6 +62,7 @@ Builder::init() {
 
   // Zero everything first, just to be safe.
   memset(_dispatch, 0, sizeof(_dispatch));
+  memset(&_loc, 0, sizeof(_loc));
 
   for ( size_t i = 0 ; i < TS_CONFIG_N_EVENT_TYPES ; ++i) {
     _dispatch[i]._ptr = this;

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/TsBuilder.h
----------------------------------------------------------------------
diff --git a/lib/tsconfig/TsBuilder.h b/lib/tsconfig/TsBuilder.h
index 815e195..136841b 100644
--- a/lib/tsconfig/TsBuilder.h
+++ b/lib/tsconfig/TsBuilder.h
@@ -34,62 +34,62 @@ namespace ts { namespace config {
  */
 class Builder {
 public:
-    typedef Builder self;
-    struct Handler {
-        self* _ptr; ///< Pointer to Builder instance.
-        /// Pointer to method to invoke for this event.
-        void (self::*_method)(Token const& token);
-
-        /// Default constructor.
-        Handler();
-    };
+  typedef Builder self;
+  struct Handler {
+    self* _ptr; ///< Pointer to Builder instance.
+    /// Pointer to method to invoke for this event.
+    void (self::*_method)(Token const& token);
 
     /// Default constructor.
-    Builder();
-    /// Destructor.
-    virtual ~Builder() {}
-    /// Construct with existing configuration.
-    Builder(Configuration const& config);
-    /// Build the table.
-    /// @return The configuration or error status.
-    Rv<Configuration> build(
-        Buffer const& buffer ///< Input text.
-    );
-protected:
-    /// Dispatch table for parse events.
-    Handler _dispatch[TS_CONFIG_N_EVENT_TYPES];
-    /// Event handler table for the parser.
-    TsConfigHandlers _handlers;
-    /// Dispatch methods
-    virtual void groupOpen(Token const& token);
-    virtual void groupClose(Token const& token);
-    virtual void groupName(Token const& token);
-    virtual void listOpen(Token const& token);
-    virtual void listClose(Token const& token);
-    virtual void pathOpen(Token const& token);
-    virtual void pathTag(Token const& token);
-    virtual void pathIndex(Token const& token);
-    virtual void pathClose(Token const& token);
-    virtual void literalValue(Token const& token);
-    virtual void invalidToken(Token const& token);
-    /// Syntax error handler
-    virtual int syntaxError(char const* text);
-    /// Static method to handle parser event callbacks.
-    static void dispatch(void* data, Token* token);
-    /// Static method for syntax errors.
-    static int syntaxErrorDispatch(void* data, char const* text);
-
-    // Building state.
-    Configuration _config; ///< Configuration to update.
-    Errata _errata; ///< Error accumulator.
-    Value _v; ///< Current value.
-    Buffer _name; ///< Pending group name, if any.
-    Buffer _extent; ///< Accumulator for multi-token text.
-    Location _loc; ///< Cache for multi-token text.
-    Path _path; ///< Path accumulator
-
-    /// Initialization, called from constructors.
-    self& init();
+    Handler();
+  };
+
+  /// Default constructor.
+  Builder();
+  /// Destructor.
+  virtual ~Builder() {}
+  /// Construct with existing configuration.
+  Builder(Configuration const& config);
+  /// Build the table.
+  /// @return The configuration or error status.
+  Rv<Configuration> build(
+			  Buffer const& buffer ///< Input text.
+			  );
+ protected:
+  /// Dispatch table for parse events.
+  Handler _dispatch[TS_CONFIG_N_EVENT_TYPES];
+  /// Event handler table for the parser.
+  TsConfigHandlers _handlers;
+  /// Dispatch methods
+  virtual void groupOpen(Token const& token);
+  virtual void groupClose(Token const& token);
+  virtual void groupName(Token const& token);
+  virtual void listOpen(Token const& token);
+  virtual void listClose(Token const& token);
+  virtual void pathOpen(Token const& token);
+  virtual void pathTag(Token const& token);
+  virtual void pathIndex(Token const& token);
+  virtual void pathClose(Token const& token);
+  virtual void literalValue(Token const& token);
+  virtual void invalidToken(Token const& token);
+  /// Syntax error handler
+  virtual int syntaxError(char const* text);
+  /// Static method to handle parser event callbacks.
+  static void dispatch(void* data, Token* token);
+  /// Static method for syntax errors.
+  static int syntaxErrorDispatch(void* data, char const* text);
+
+  // Building state.
+  Configuration _config; ///< Configuration to update.
+  Errata _errata; ///< Error accumulator.
+  Value _v; ///< Current value.
+  Buffer _name; ///< Pending group name, if any.
+  Buffer _extent; ///< Accumulator for multi-token text.
+  Location _loc; ///< Cache for multi-token text.
+  Path _path; ///< Path accumulator
+
+  /// Initialization, called from constructors.
+  self& init();
 };
 
 inline Builder::Handler::Handler() : _ptr(0), _method(0) { }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/TsConfigGrammar.c
----------------------------------------------------------------------
diff --git a/lib/tsconfig/TsConfigGrammar.c b/lib/tsconfig/TsConfigGrammar.c
index 6bcaaf8..c24f1a9 100644
--- a/lib/tsconfig/TsConfigGrammar.c
+++ b/lib/tsconfig/TsConfigGrammar.c
@@ -62,7 +62,7 @@
 /* Line 349 of yacc.c  */
 #line 26 "TsConfigGrammar.y"
 
-# if ! defined(__clang_analyzer__)
+# if ! (defined(__clang_analyzer__) || defined(__COVERITY__))
 # include "TsConfigTypes.h"
 # include <stdlib.h>
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/TsConfigGrammar.y
----------------------------------------------------------------------
diff --git a/lib/tsconfig/TsConfigGrammar.y b/lib/tsconfig/TsConfigGrammar.y
index 63a0425..7dcfc87 100644
--- a/lib/tsconfig/TsConfigGrammar.y
+++ b/lib/tsconfig/TsConfigGrammar.y
@@ -24,7 +24,7 @@
 }
 
 %code top {
-# if ! defined(__clang_analyzer__)
+# if ! (defined(__clang_analyzer__) || defined(__COVERITY__))
 # include "TsConfigTypes.h"
 # include <stdlib.h>
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/TsConfigSyntax.c
----------------------------------------------------------------------
diff --git a/lib/tsconfig/TsConfigSyntax.c b/lib/tsconfig/TsConfigSyntax.c
index ea363c3..17150a1 100644
--- a/lib/tsconfig/TsConfigSyntax.c
+++ b/lib/tsconfig/TsConfigSyntax.c
@@ -485,7 +485,7 @@ static yyconst flex_int16_t yy_chk[89] =
     limitations under the License.
  */
  
-# if ! defined(__clang_analyzer__)
+# if ! (defined(__clang_analyzer__) || defined(__COVERITY__))
 
 # include "TsConfigParseEvents.h"
 # include "TsConfigGrammar.h"

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/TsConfigSyntax.l
----------------------------------------------------------------------
diff --git a/lib/tsconfig/TsConfigSyntax.l b/lib/tsconfig/TsConfigSyntax.l
index d7d6d7e..c8eba34 100644
--- a/lib/tsconfig/TsConfigSyntax.l
+++ b/lib/tsconfig/TsConfigSyntax.l
@@ -23,7 +23,7 @@
     limitations under the License.
  */
  
-# if ! defined(__clang_analyzer__)
+# if ! (defined(__clang_analyzer__) || defined(__COVERITY__))
 
 # include "TsConfigParseEvents.h"
 # include "TsConfigGrammar.h"

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/TsConfigTypes.h
----------------------------------------------------------------------
diff --git a/lib/tsconfig/TsConfigTypes.h b/lib/tsconfig/TsConfigTypes.h
index b4399d0..6c64e04 100644
--- a/lib/tsconfig/TsConfigTypes.h
+++ b/lib/tsconfig/TsConfigTypes.h
@@ -40,8 +40,8 @@ namespace ts { namespace config {
     be the caller's responsibility?
  */
 struct Location {
-    int _col; ///< Column.
-    int _line; ///< Line.
+  int _col; ///< Column.
+  int _line; ///< Line.
 };
 
 /** A token from the source stream.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/TsErrataUtil.cc
----------------------------------------------------------------------
diff --git a/lib/tsconfig/TsErrataUtil.cc b/lib/tsconfig/TsErrataUtil.cc
index 0cbec18..4d72b05 100644
--- a/lib/tsconfig/TsErrataUtil.cc
+++ b/lib/tsconfig/TsErrataUtil.cc
@@ -98,7 +98,9 @@ logf(
 ) {
   va_list rest;
   va_start(rest, format);
-  return vlogf(err, id, code, format, rest);
+  vlogf(err, id, code, format, rest);
+  va_end(rest);
+  return err;
 }
 
 Errata
@@ -106,21 +108,27 @@ logf(Errata::Code code, char const* format, ...) {
   Errata err;
   va_list rest;
   va_start(rest, format);
-  return vlogf(err, Errata::Id(0), code, format, rest);
+  vlogf(err, Errata::Id(0), code, format, rest);
+  va_end(rest);
+  return err;
 }
 
 Errata&
 logf(Errata& err, Errata::Code code, char const* format, ...) {
   va_list rest;
   va_start(rest, format);
-  return vlogf(err, Errata::Id(0), code, format, rest);
+  vlogf(err, Errata::Id(0), code, format, rest);
+  va_end(rest);
+  return err;
 }
 
 Errata&
 logf(RvBase& base, Errata::Code code, char const* format, ...) {
-    va_list rest;
-    va_start(rest, format);
-    return vlogf(base._errata, Errata::Id(0), code, format, rest);
+  va_list rest;
+  va_start(rest, format);
+  vlogf(base._errata, Errata::Id(0), code, format, rest);
+  va_end(rest);
+  return base._errata;
 }
 
 Errata
@@ -154,21 +162,29 @@ logf_errno(Errata::Code code, char const* format, ...) {
   Errata zret;
   va_list rest;
   va_start(rest, format);
-  return vlogf_errno(zret, 0, code, format, rest);
+  zret = vlogf_errno(zret, 0, code, format, rest);
+  va_end(rest);
+  return zret;
 }
 
 Errata
 logf_errno(Errata& errata, Errata::Code code, char const* format, ...) {
+  Errata zret;
   va_list rest;
   va_start(rest, format);
-  return vlogf_errno(errata, 0, code, format, rest);
+  zret = vlogf_errno(errata, 0, code, format, rest);
+  va_end(rest);
+  return zret;
 }
 
 Errata
 logf_errno(RvBase& rv, Errata::Code code, char const* format, ...) {
-    va_list rest;
-    va_start(rest, format);
-    return vlogf_errno(rv._errata, 0, code, format, rest);
+  Errata zret;
+  va_list rest;
+  va_start(rest, format);
+  zret = vlogf_errno(rv._errata, 0, code, format, rest);
+  va_end(rest);
+  return zret;
 }
 // ------------------------------------------------------
 }} // namespace ts::msg

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6753338/lib/tsconfig/TsValue.h
----------------------------------------------------------------------
diff --git a/lib/tsconfig/TsValue.h b/lib/tsconfig/TsValue.h
index 3919ba3..aeee930 100644
--- a/lib/tsconfig/TsValue.h
+++ b/lib/tsconfig/TsValue.h
@@ -644,8 +644,8 @@ namespace detail {
   inline ValueItem const& ValueTable::operator [] (ValueIndex idx) const { return const_cast<self*>(this)->operator [] (idx); }
   inline ValueTable& ValueTable::reset() { _ptr = 0; return *this; }
 
-  inline ValueItem::ValueItem() : _type(VoidValue) {}
-  inline ValueItem::ValueItem(ValueType type) : _type(type) {}
+  inline ValueItem::ValueItem() : _type(VoidValue), _local_index(0), _srcLine(0), _srcColumn(0) {}
+  inline ValueItem::ValueItem(ValueType type) : _type(type), _local_index(0), _srcLine(0), _srcColumn(0) {}
   inline ValueType ValueItem::getType() const { return _type; }
 }