]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRunLoader.cxx
coverity warnings 15388 10083 10082 fixed
[u/mrichter/AliRoot.git] / STEER / AliRunLoader.cxx
index 088544c601d8716517bc90b704ab242c6ef15a6c..3ebc988d3961d455db6a7873d8fe6d96100c0d50 100644 (file)
@@ -128,11 +128,11 @@ AliRunLoader::AliRunLoader(const char* eventfoldername):
 AliRunLoader::~AliRunLoader()
 {
 //dtor
-  if (fgRunLoader == this) fgRunLoader = 0x0;
+
   
   UnloadHeader();
   UnloadgAlice();
-  
+  if (fgRunLoader == this) fgRunLoader = 0x0;  
   if(fLoaders) {
     fLoaders->SetOwner();
     delete fLoaders;
@@ -146,7 +146,6 @@ AliRunLoader::~AliRunLoader()
   
   //fEventFolder is deleted by the way of removing - TopAliceFolder owns it
   if( fCTrigger ) delete  fCTrigger;
-  delete fHeader;
   delete fStack;
   delete fGAFile;
 }
@@ -621,7 +620,9 @@ void AliRunLoader::MakeTree(Option_t *option)
       // create the CTP Trigger output file and tree
       TFile* file = gROOT->GetFile( fgkDefaultTriggerFileName );
       if( !file ) {
-         file = TFile::Open( gSystem->ConcatFileName( fUnixDirName.Data(), fgkDefaultTriggerFileName.Data() ), "RECREATE" ) ;
+        char* tmp = gSystem->ConcatFileName( fUnixDirName.Data(), fgkDefaultTriggerFileName.Data() );
+        file = TFile::Open(tmp , "RECREATE" ) ;
+        delete[] tmp;
       }
 
       file->cd();
@@ -718,9 +719,10 @@ Int_t AliRunLoader::LoadHeader()
 Int_t AliRunLoader::LoadTrigger(Option_t* option)
 {
    //Load treeCT
-
+   static Bool_t warned = kFALSE;
    if( TreeCT() ) {
-      AliWarning("Trigger is already loaded. Nothing done");
+      if (!warned) AliWarning("Trigger is already loaded. Nothing done. Message will not be repeated.");
+      warned = kTRUE;
       return 0;
    }
  
@@ -729,8 +731,11 @@ Int_t AliRunLoader::LoadTrigger(Option_t* option)
       return 1;
    }
    // get the CTP Trigger output file and tree
-   TString trgfile = gSystem->ConcatFileName( fUnixDirName.Data(),
-                                              fgkDefaultTriggerFileName.Data() );
+  char* tmp = gSystem->ConcatFileName( fUnixDirName.Data(),
+                                      fgkDefaultTriggerFileName.Data() );
+  TString trgfile(tmp);
+  delete[] tmp;
+  
    TFile* file = gROOT->GetFile( trgfile );
    if( !file ) {
       file = TFile::Open( trgfile, option ) ;
@@ -1657,7 +1662,7 @@ AliLoader* AliRunLoader::GetDetectorLoader(const char* detname)
 //run loader object
   
   char loadername[256];
-  sprintf(loadername, "%sLoader", detname);
+  snprintf(loadername, 255, "%sLoader", detname);
   AliLoader* loader = GetLoader(loadername);
   if (!loader) {
     AliError(Form("No loader for %s found", detname));
@@ -1816,13 +1821,13 @@ void AliRunLoader::GetListOfDetectors(const char * namelist,TObjArray& pointerar
   
    char buff[10];
    char dets [200];
-   strcpy(dets,namelist);//compiler cries when char* = const Option_t*;
-   dets[strlen(dets)+1] = '\n';//set endl at the end of string 
+   strncpy(dets,namelist,199);//compiler cries when char* = const Option_t*;
+   //   dets[strlen(dets)+1] = '\n';//set endl at the end of string 
    char* pdet = dets;
    Int_t tmp;
    for(;;)
     {
-      tmp = sscanf(pdet,"%s",buff);//read the string from the input string pdet into buff
+      tmp = sscanf(pdet,"%9s",buff);//read the string from the input string pdet into buff
       if ( (buff[0] == 0) || (tmp == 0) ) break; //if not read
      
       pdet = strstr(pdet,buff) + strlen(buff);//move the input pointer about number of bytes (letters) read
@@ -1959,7 +1964,6 @@ void AliRunLoader::UnloadHeader()
  //removes TreeE from folder and deletes it
  // as well as fHeader object
  CleanHeader();
- delete fHeader;
  fHeader = 0x0;
 }
 /**************************************************************************/