From 70e844ea11f3ed0c215bd667f668303ad55fd785 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 25 Jan 2014 17:44:15 +0100 Subject: Fix T38353: some EXR files from other applications not loading correctly. * EXR layers with names like 'Z' without any pass name were not loaded at all and would break the Combined pass as well. * EXR pass names longer than 16 characters where writing past the end of the array and getting invalid names. --- source/blender/imbuf/intern/openexr/openexr_api.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender/imbuf') diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp index b25a224e16c..9fa69194ded 100644 --- a/source/blender/imbuf/intern/openexr/openexr_api.cpp +++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp @@ -891,7 +891,14 @@ static int imb_exr_split_channel_name(ExrChannel *echan, char *layname, char *pa if (name[1] == 0) { echan->chan_id = name[0]; layname[0] = '\0'; - strcpy(passname, "Combined"); + + if (ELEM4(name[0], 'R', 'G', 'B', 'A')) + strcpy(passname, "Combined"); + else if (name[0] == 'Z') + strcpy(passname, "Depth"); + else + strcpy(passname, name); + return 1; } -- cgit v1.2.3