Fix fixed-string length bug
authorakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 28 Jul 2008 12:52:04 +0000 (12:52 +0000)
committerakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 28 Jul 2008 12:52:04 +0000 (12:52 +0000)
TTherminator/Therminator/Event.cxx

index 7685211..61d62ad 100644 (file)
@@ -226,11 +226,19 @@ Event::ReadMultiplicities()
   double tMult;
   
   char *tHash;
-  char  tMultName[100];
+  int   multsize;
+  char *tMultName = 0;
   ifstream *fin = NULL;
   
   tHash = mInteg->ParameterHash();
-  
+  multsize = strlen(mFOHSlocation.Data()) + 25 + strlen(tHash);
+  tMultName = (char *) malloc(sizeof(char) * multsize);
+
+  if (!tMultName) {
+    printf("Cannot allocate memory!\n");
+    exit(0);
+  }
+
   if (mFOHSlocation != "") {
     strcpy(tMultName, mFOHSlocation.Data());
     strcat(tMultName, "/");
@@ -250,7 +258,7 @@ Event::ReadMultiplicities()
 //   strcat(tMultName, tHash);
 //   strcat(tMultName, ".txt");
 
-  fin = new ifstream(tMultName);
+//  fin = new ifstream(tMultName);
   if ((fin) && (fin->is_open())) {
     PRINT_MESSAGE("Reading Multiplicities from " << tMultName);
 
@@ -262,6 +270,8 @@ Event::ReadMultiplicities()
     }
     fin->close();
   }
+
+  delete tMultName;
 }
 
 void