]> rtime.felk.cvut.cz Git - opencv.git/commitdiff
fixed ticket 194 (thanks to Giuseppe)
authormdim <mdim@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Tue, 23 Mar 2010 10:56:43 +0000 (10:56 +0000)
committermdim <mdim@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Tue, 23 Mar 2010 10:56:43 +0000 (10:56 +0000)
git-svn-id: https://code.ros.org/svn/opencv/trunk@2886 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08

opencv/apps/traincascade/imagestorage.cpp

index c792b0ca61d0bbdd49c314593d7f854ce4d1f670..77d50d45d5a77a1691f5e634e45550fbe7b164dd 100755 (executable)
@@ -33,7 +33,7 @@ bool CvCascadeImageReader::NegReader::create( const String _filename, Size _winS
         pos = _filename.rfind('/');
         dlmrt = '/';
     }
-    dirname = _filename.substr(0, pos) + dlmrt;
+    dirname = pos == String::npos ? "" : _filename.substr(0, pos) + dlmrt;
     while( !file.eof() )
     {
         std::getline(file, str);
@@ -132,10 +132,11 @@ bool CvCascadeImageReader::PosReader::create( const String _filename )
     if( !file )
         return false;
     short tmp = 0;  
-    fread( &count, sizeof( count ), 1, file );
-    fread( &vecSize, sizeof( vecSize ), 1, file );
-    fread( &tmp, sizeof( tmp ), 1, file );
-    fread( &tmp, sizeof( tmp ), 1, file );
+    if( fread( &count, sizeof( count ), 1, file ) != 1 ||
+        fread( &vecSize, sizeof( vecSize ), 1, file ) != 1 ||
+        fread( &tmp, sizeof( tmp ), 1, file ) != 1 ||
+        fread( &tmp, sizeof( tmp ), 1, file ) != 1 )
+        CV_Error_( CV_StsParseError, ("wrong file format for %s\n", _filename.c_str()) );
     base = sizeof( count ) + sizeof( vecSize ) + 2*sizeof( tmp );
     if( feof( file ) )
         return false;