diff --git a/modules/ml/src/svm.cpp b/modules/ml/src/svm.cpp index 0a5bfffa31..594a43a895 100644 --- a/modules/ml/src/svm.cpp +++ b/modules/ml/src/svm.cpp @@ -2315,7 +2315,12 @@ void CvSVM::write( CvFileStorage* fs, const char* name ) const params.svm_type == CvSVM::ONE_CLASS ? 1 : 0; const CvSVMDecisionFunc* df = decision_func; if( !isSvmModelApplicable(sv_total, var_all, var_count, class_count) ) + { + cvReleaseFileStorage( &fs ); + fs = NULL; + CV_ERROR( CV_StsParseError, "SVM model data is invalid, check sv_count, var_* and class_count tags" ); + } cvStartWriteStruct( fs, name, CV_NODE_MAP, CV_TYPE_NAME_ML_SVM );