mirror of
https://github.com/opencv/opencv.git
synced 2025-01-18 22:44:02 +08:00
loadsave: check for errors when using temp file
Previously, the return value of fwrite and fclose were not properly checked, leading to possible silent truncation of the data if writing failed, e.g. due to lack of disk space. Fixes issue #9251.
This commit is contained in:
parent
06407b4d14
commit
2be955a0ef
@ -651,8 +651,15 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
|
||||
if( !f )
|
||||
return 0;
|
||||
size_t bufSize = buf.cols*buf.rows*buf.elemSize();
|
||||
fwrite( buf.ptr(), 1, bufSize, f );
|
||||
fclose(f);
|
||||
if( fwrite( buf.ptr(), 1, bufSize, f ) != bufSize )
|
||||
{
|
||||
fclose( f );
|
||||
CV_Error( CV_StsError, "failed to write image data to temporary file" );
|
||||
}
|
||||
if( fclose(f) != 0 )
|
||||
{
|
||||
CV_Error( CV_StsError, "failed to write image data to temporary file" );
|
||||
}
|
||||
decoder->setSource(filename);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user