From 1aee6c821041d2cbe63b35cb2c53b57454cfb227 Mon Sep 17 00:00:00 2001 From: msv Date: Fri, 22 Jul 2016 12:07:24 +0300 Subject: [PATCH] 0027703: BinTools_ShapeSet stream read bug Avoid out of array bounds read/write. --- src/BinTools/BinTools_ShapeSet.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/BinTools/BinTools_ShapeSet.cxx b/src/BinTools/BinTools_ShapeSet.cxx index 5008ddffc1..5ab0c6b2ba 100644 --- a/src/BinTools/BinTools_ShapeSet.cxx +++ b/src/BinTools/BinTools_ShapeSet.cxx @@ -395,8 +395,11 @@ void BinTools_ShapeSet::Read(Standard_IStream& IS) IS.getline(vers,100,'\n'); // BUC60769 PTV 18.10.2000: remove possible '\r' at the end of the line - for (Standard_Size lv = (strlen(vers)- 1); lv > 1 && (vers[lv] == '\r' || vers[lv] == '\n') ;lv--) - vers[lv] = '\0'; + Standard_Size lv = strlen(vers); + if (lv > 0) { + for (lv--; lv > 0 && (vers[lv] == '\r' || vers[lv] == '\n'); lv--) + vers[lv] = '\0'; + } } while ( ! IS.fail() && strcmp(vers,Version_1) && strcmp(vers,Version_2) && strcmp(vers,Version_3)); -- 2.39.5