]> OCCT Git - occt.git/commitdiff
Fixed warnings CR33035
authoraln <alukin@opencascade.com>
Thu, 30 Jun 2022 13:00:34 +0000 (16:00 +0300)
committeraln <alukin@opencascade.com>
Thu, 30 Jun 2022 13:00:34 +0000 (16:00 +0300)
- arrayIndexOutOfBoundsCond
- nullPointer

src/BinLDrivers/BinLDrivers_DocumentSection.cxx
src/ExprIntrp/lex.ExprIntrp.c
src/IFSelect/IFSelect_SessionPilot.cxx
src/OSD/OSD_PerfMeter.cxx
src/StepFile/lex.step.cxx

index 547ced34d5c749dafbc13ba45c41b990f08b5543..1edc70ddcaffeea6c841cd8aab359175aef51209 100644 (file)
@@ -223,14 +223,14 @@ Standard_Boolean BinLDrivers_DocumentSection::ReadTOC (
   char aBuf[THE_BUF_SIZE];
   Standard_Integer aNameBufferSize;
   theStream.read ((char *)&aNameBufferSize, sizeof(Standard_Integer));
-  if (theStream.eof() || aNameBufferSize > THE_BUF_SIZE)
+  if (theStream.eof() || aNameBufferSize > THE_BUF_SIZE - 1)
     return Standard_False;
 #ifdef DO_INVERSE
   aNameBufferSize = InverseSize(aNameBufferSize);
 #endif
   if (aNameBufferSize > 0) {
     theStream.read ((char *)&aBuf[0], (Standard_Size)aNameBufferSize);
-    aBuf[aNameBufferSize] = '\0';
+    aBuf[aNameBufferSize-1] = '\0';
     theSection.myName = (Standard_CString)&aBuf[0];
 
     uint64_t aValue[3];
index 0bd3db536e7fe7bc0c09d1877cc8dc3e3e3319c7..cab45c5708a24fc8189c3ae0c3a5a24727c583f2 100644 (file)
@@ -1731,8 +1731,10 @@ static void yy_load_buffer_state  (void)
     void yy_delete_buffer (YY_BUFFER_STATE  b )
 {
     
-       if ( ! b )
-               return;
+       if ( ! b ) {
+         YY_FATAL_ERROR("out of dynamic memory in yy_delete_buffer()");
+         return;
+       }
 
        if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
@@ -1750,6 +1752,11 @@ static void yy_load_buffer_state  (void)
     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 
 {
+       if ( ! b ) {
+         YY_FATAL_ERROR("out of dynamic memory in yy_init_buffer()");
+         return;
+       }
+
        int oerrno = errno;
     
        yy_flush_buffer( b );
@@ -1777,8 +1784,10 @@ static void yy_load_buffer_state  (void)
  */
     void yy_flush_buffer (YY_BUFFER_STATE  b )
 {
-       if ( ! b )
-               return;
+    if ( ! b ) {
+         YY_FATAL_ERROR("out of dynamic memory in yy_flush_buffer()");
+         return;
+       }
 
        b->yy_n_chars = 0;
 
index acf782e10e11603b395d7320810de70f5774e954..fb400dc2620e7c3eba11f82bc89389885d550f4c 100644 (file)
@@ -113,11 +113,11 @@ IFSelect_SessionPilot::IFSelect_SessionPilot (const Standard_CString prompt)
       continue;
     }
     if (nc == 0) thewordeb.SetValue (thenbwords,i);
-    if (nc > MAXCARS) {  std::cout<<"Arg."<<thenbwords<<" > "<<MAXCARS<<" car.s, tronque"<<std::endl; continue;  }
+    if (nc >= MAXCARS - 1) {  std::cout<<"Arg."<<thenbwords<<" > "<<MAXCARS<<" car.s, tronque"<<std::endl; continue;  }
     unarg[nc] = val;  nc ++;
   }
   if (nc > 0) {
-    unarg[nc] = '\0'; thewords(thenbwords).Clear();
+    unarg[nc + 1] = '\0'; thewords(thenbwords).Clear();
     thewords(thenbwords).AssignCat(unarg);
 #ifdef DEBUG_TRACE
     std::cout<<"thewords("<<thenbwords<<")="<<unarg<<std::endl<<" .. Fin avec thenbwords="<<thenbwords+1<<std::endl;
index f20fed96ca73bfa420eb97ed73581e84236f9e34..433e56494a9c77cfc442a6368a51cf054037b202 100644 (file)
@@ -141,7 +141,7 @@ Returns  :      iMeter if OK, -1 if no such meter
 ======================================================================*/
 int perf_start_imeter (const int iMeter)
 {
-  if (iMeter >= 0 && iMeter < nb_meters) {
+  if (iMeter >= 0 && iMeter < nb_meters && iMeter < MAX_METERS) {
     PICK_TIME (MeterTable[iMeter].start_time)
     return iMeter;
   }
index 24d51f0a0a68c742afefeb3c2f1db40aee49e42d..307ba5be534152354f0699f038fedafa7a7f7b89 100644 (file)
@@ -1774,6 +1774,9 @@ void yyFlexLexer::yyrestart( std::istream* input_file )
     void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file )
 
 {
+       if ( ! b )
+         return;
+
        int oerrno = errno;
     
        yy_flush_buffer( b );