]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
0022232: [CEA 837] Memory corruption in GEOM/SMESH that leads to segfault on debian64
authoreap <eap@opencascade.com>
Fri, 21 Jun 2013 08:32:21 +0000 (08:32 +0000)
committereap <eap@opencascade.com>
Fri, 21 Jun 2013 08:32:21 +0000 (08:32 +0000)
Initialize myModified in constructor

src/SALOMEDSImpl/SALOMEDSImpl_AttributeStudyProperties.cxx

index ce9193631f86600cf2ed6a9e3017d0b587a4a145..195de54e3ce176f2705b75bbb5a4fef6314bd4ae 100644 (file)
@@ -48,6 +48,7 @@ SALOMEDSImpl_AttributeStudyProperties::SALOMEDSImpl_AttributeStudyProperties()
 {
   myLocked = false;
   myLockChanged = false;
+  myModified = false;
   Init();
 }
 
@@ -64,11 +65,11 @@ void SALOMEDSImpl_AttributeStudyProperties::Init()
 }
 
 void SALOMEDSImpl_AttributeStudyProperties::SetModification(const std::string& theUserName,
-                                                            const int            theMinute,
-                                                            const int            theHour,
-                                                            const int            theDay,
-                                                            const int            theMonth,
-                                                            const int            theYear)
+                                                            const int          theMinute,
+                                                            const int          theHour,
+                                                            const int          theDay,
+                                                            const int          theMonth,
+                                                            const int          theYear)
 {
   if (theMinute<0 || theMinute>60 || theHour<0 || theHour>24 ||
       theDay<0 || theDay>31 || theMonth<0 || theMonth>12)
@@ -309,7 +310,7 @@ std::string SALOMEDSImpl_AttributeStudyProperties::Save()
   for ( versionsIt = versions.begin(); versionsIt != versions.end(); ++versionsIt ) {
     sprintf(&(aProperty[a]),"%s=%s",
             (char*)(versionsIt->first.c_str()),
-           (char*)(versionsIt->second.c_str()));
+            (char*)(versionsIt->second.c_str()));
     a = strlen(aProperty);
     aProperty[a++] = 1;
   }
@@ -488,26 +489,26 @@ void SALOMEDSImpl_AttributeStudyProperties::Load(const std::string& value)
       for(verSize = 0; aCopy[anIndex+modSize+1+verSize] != 1; verSize++);
 
       if(modSize > 0) {
-       char *aModule = new char[modSize+1];
-       strncpy(aModule, &(aCopy[anIndex]), modSize);
-       aModule[modSize] = 0;
-       char *aVersions = new char[verSize+1];
-       if ( verSize > 0 )
-         strncpy(aVersions, &(aCopy[anIndex+modSize+1]), verSize);
-       aVersions[verSize] = 0;
-       
-       std::string mVersions = aVersions;
-       int start = 0, idx = mVersions.find( ';', start );
-       while ( idx != std::string::npos ) {
-         SetComponentVersion( aModule, mVersions.substr( start, idx-start ) );
-         start = idx + 1;
-         idx = mVersions.find( ';', start );
-       }
-       SetComponentVersion( aModule, mVersions.substr( start ) );
-
-       delete [] (aModule);
-       delete [] (aVersions);
-       anIndex += modSize + 1 + verSize + 1;
+        char *aModule = new char[modSize+1];
+        strncpy(aModule, &(aCopy[anIndex]), modSize);
+        aModule[modSize] = 0;
+        char *aVersions = new char[verSize+1];
+        if ( verSize > 0 )
+          strncpy(aVersions, &(aCopy[anIndex+modSize+1]), verSize);
+        aVersions[verSize] = 0;
+        
+        std::string mVersions = aVersions;
+        int start = 0, idx = mVersions.find( ';', start );
+        while ( idx != std::string::npos ) {
+          SetComponentVersion( aModule, mVersions.substr( start, idx-start ) );
+          start = idx + 1;
+          idx = mVersions.find( ';', start );
+        }
+        SetComponentVersion( aModule, mVersions.substr( start ) );
+
+        delete [] (aModule);
+        delete [] (aVersions);
+        anIndex += modSize + 1 + verSize + 1;
       }
     }
   }