From 3a1bb933401446b442348026b9cb680d35f3f449 Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Tue, 1 Sep 2015 13:04:33 +0300 Subject: [PATCH] release filestorage before exception --- modules/ml/src/svm.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/ml/src/svm.cpp b/modules/ml/src/svm.cpp index 0a5bfffa3..594a43a89 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 );