[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45692] trunk/blender/source/blender/imbuf /intern/openexr/openexr_api.cpp: Avoid invalid delete call when loading multilayer EXR files with that don' t fit the Blender pass naming scheme.
Lukas Toenne
lukas.toenne at googlemail.com
Mon Apr 16 13:57:23 CEST 2012
Revision: 45692
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45692
Author: lukastoenne
Date: 2012-04-16 11:57:22 +0000 (Mon, 16 Apr 2012)
Log Message:
-----------
Avoid invalid delete call when loading multilayer EXR files with that don't fit the Blender pass naming scheme. If the imb_exr_begin_read_mem function fails reading the EXR (e.g. because of too many channels per pass) it deletes the file internally, leading to segfault on second delete.
Modified Paths:
--------------
trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp
Modified: trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp
===================================================================
--- trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp 2012-04-16 11:54:28 UTC (rev 45691)
+++ trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp 2012-04-16 11:57:22 UTC (rev 45692)
@@ -1007,7 +1007,6 @@
if (handle) {
IMB_exr_read_channels(handle);
ibuf->userdata= handle; /* potential danger, the caller has to check for this! */
- return ibuf;
}
}
else {
@@ -1055,11 +1054,12 @@
//
// if (flag & IM_rect)
// IMB_rect_from_float(ibuf);
+
+ /* file is no longer needed */
+ delete file;
}
}
-
}
- delete file;
return(ibuf);
}
catch (const std::exception &exc)
More information about the Bf-blender-cvs
mailing list