Fixing coverity defects:
authormfasel <mfasel@lbl.gov>
Wed, 14 Jan 2015 10:39:05 +0000 (11:39 +0100)
committermfasel <mfasel@lbl.gov>
Wed, 14 Jan 2015 10:53:42 +0000 (11:53 +0100)
==============================================================
String handling in JSON config handling consistently ported from
c-string to stl strings in order to avoid undefined behaviour.

PWG/EMCAL/AliEMCALConfigHandler.cxx
PWG/EMCAL/AliEMCALConfigHandler.h
PWG/EMCAL/AliEMCALConfiguration.cxx
PWG/EMCAL/AliEMCALConfiguration.h
PWG/Tools/THistManager.cxx

index a66f95a..1c41866 100644 (file)
@@ -47,7 +47,7 @@ void AliEMCALConfigHandler::AddParam(const char* configName, const char* key,
   config->AddParam(key, value);
 }
 
-const char *AliEMCALConfigHandler::GetConfigurationString() const {
+std::string AliEMCALConfigHandler::GetConfigurationString() const {
   std::stringstream jsonbuilder;
   jsonbuilder << "{";
   TIter confentries(fConfiguration);
@@ -59,10 +59,10 @@ const char *AliEMCALConfigHandler::GetConfigurationString() const {
     if(isFirst) isFirst = false;
   }
   jsonbuilder << "}";
-  return jsonbuilder.str().c_str();
+  return jsonbuilder.str();
 }
 
-const char *AliEMCALConfigHandler::GetConfigurationString(const char* configname) const {
+std::string AliEMCALConfigHandler::GetConfigurationString(const char* configname) const {
   AliEMCALConfiguration *conf = FindConfiguration(configname);
   if(!conf) return "";
   return conf->CreateJSONString();
index 9f64283..b2902a8 100644 (file)
@@ -8,6 +8,7 @@
 #ifndef _ALIEMCALCONFIGHANDLER_H_
 #define _ALIEMCALCONFIGHANDLER_H_
 
+#include <string>
 #include <TObject.h>
 
 class AliEMCALConfiguration;
@@ -21,8 +22,8 @@ public:
 
   AliEMCALConfiguration *CreateConfiguration(const char *name);
   void AddParam(const char *configName, const char *key, AliJSONValue *value);
-  const char *GetConfigurationString() const;
-  const char *GetConfigurationString(const char *configname) const;
+  std::string GetConfigurationString() const;
+  std::string GetConfigurationString(const char *configname) const;
   AliEMCALConfiguration *FindConfiguration(const char *configName) const;
 
 protected:
index 4c84254..e96013f 100644 (file)
@@ -75,7 +75,7 @@ AliJSONValue* AliEMCALConfiguration::GetValue(const char *key) const {
   return val->GetValue();
 }
 
-const char* AliEMCALConfiguration::CreateJSONString() const {
+std::string AliEMCALConfiguration::CreateJSONString() const {
   std::stringstream jsonbuilder;
   jsonbuilder << "{";
   TIter confentries(fParams);
index db86e49..2428535 100644 (file)
@@ -9,6 +9,7 @@
 #define _ALIEMCALCONFIGURATION_H_
 
 #include <ostream>
+#include <string>
 #include <TNamed.h>
 
 class TList;
@@ -24,7 +25,7 @@ public:
   void AddConfiguration(AliEMCALConfiguration * conf);
   void Build(const char * jsonstring);
   void Build(TList *entries);
-  const char *CreateJSONString() const;
+  std::string CreateJSONString() const;
 
   Bool_t HasKey(const char *key) const { return GetValue(key) != NULL; }
   AliJSONValue *GetValue(const char *key) const ;
index ece8133..5c06905 100644 (file)
@@ -92,7 +92,7 @@ void THistManager::CreateHistoGroup(const char *groupname, const char *parent) {
         */
        THashList *parentgroup = FindGroup(parent);
        if(!parentgroup){
-               Fatal("THistManager::CreateHistoGroup", "Parent group %s does not exist", parentgroup->GetName());
+               Fatal("THistManager::CreateHistoGroup", "Parent group %s does not exist", parent);
                return;
        }
        THashList *childgroup = new THashList();