Просмотр исходного кода

Fix buffer overflow in GuiTreeViewCtrl class.

When calculating test length (in method `GuiTreeViewCtrl::Item::getDisplayTextLength()`)
the code doesn't take into account the `ItemState::Marked`, which
adds additional char in `GuiTreeViewCtrl::Item::getDisplayText()` method.

This commit fixes warning printed into console when calling `dSprintf()`
as the buffer is now enough to fit all data.
bank 2 лет назад
Родитель
Сommit
93cea86312
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      Engine/source/gui/controls/guiTreeViewCtrl.cpp

+ 4 - 0
Engine/source/gui/controls/guiTreeViewCtrl.cpp

@@ -466,6 +466,10 @@ U32 GuiTreeViewCtrl::Item::getDisplayTextLength()
          if( internalName && internalName[ 0 ] )
          if( internalName && internalName[ 0 ] )
             len += dStrlen( internalName ) + 3; // ' [<internalname>]'
             len += dStrlen( internalName ) + 3; // ' [<internalname>]'
       }
       }
+      if( mState.test( Marked ) )
+      {
+         len += 1; // '*<name>'
+      }
 
 
       return len;
       return len;
    }
    }