[Bf-blender-cvs] [851d753] master: Fix T45204: String Splitting Function Bug: Using OpenEXR function even if compiled without OpenEXR.
Bastien Montagne
noreply at git.blender.org
Sat Jun 27 10:26:16 CEST 2015
Commit: 851d7535d9711af8b0d42cb08d7ecdb281d63604
Author: Bastien Montagne
Date: Fri Jun 26 19:41:51 2015 +0200
Branches: master
https://developer.blender.org/rB851d7535d9711af8b0d42cb08d7ecdb281d63604
Fix T45204: String Splitting Function Bug: Using OpenEXR function even if compiled without OpenEXR.
Seriously!!!
Also, fix a potential buffer overrun here.
This should be backported to final release.
===================================================================
M source/blender/render/intern/source/render_result.c
===================================================================
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index 2af6a38..117d28d 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -459,9 +459,10 @@ static int passtype_from_name(const char *str)
static void set_pass_name(char *passname, int passtype, int channel, const char *view)
{
- const char *end;
- const char *token;
- int len;
+ const char delims[] = {'.', '\0'};
+ char *sep;
+ char *token;
+ size_t len;
const char *passtype_name = name_from_passtype(passtype, channel);
@@ -470,13 +471,14 @@ static void set_pass_name(char *passname, int passtype, int channel, const char
return;
}
- end = passtype_name + strlen(passtype_name);
- len = IMB_exr_split_token(passtype_name, end, &token);
+ len = BLI_str_rpartition(passtype_name, delims, &sep, &token);
- if (len == strlen(passtype_name))
- sprintf(passname, "%s.%s", passtype_name, view);
- else
- sprintf(passname, "%.*s%s.%s", (int)(end-passtype_name) - len, passtype_name, view, token);
+ if (sep) {
+ BLI_snprintf(passname, EXR_PASS_MAXNAME, "%.*s.%s.%s", (int)len, passtype_name, view, token);
+ }
+ else {
+ BLI_snprintf(passname, EXR_PASS_MAXNAME, "%s.%s", passtype_name, view);
+ }
}
/********************************** New **************************************/
More information about the Bf-blender-cvs
mailing list