[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57926] trunk/blender/source/blender/ makesrna/intern/rna_access.c: fix for error reading defaults from custom properties, would read out of bounds memory.

Campbell Barton ideasman42 at gmail.com
Tue Jul 2 10:06:46 CEST 2013


Revision: 57926
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57926
Author:   campbellbarton
Date:     2013-07-02 08:06:45 +0000 (Tue, 02 Jul 2013)
Log Message:
-----------
fix for error reading defaults from custom properties, would read out of bounds memory.
recent change to animsys r57904 exposed this error in some sintel files.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57904

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_access.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c	2013-07-02 06:40:05 UTC (rev 57925)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c	2013-07-02 08:06:45 UTC (rev 57926)
@@ -1871,7 +1871,7 @@
 
 int RNA_property_boolean_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
 {
-	BoolPropertyRNA *bprop = (BoolPropertyRNA *)prop;
+	BoolPropertyRNA *bprop = (BoolPropertyRNA *)rna_ensure_property(prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
 	BLI_assert(RNA_property_array_check(prop) == false);
@@ -1881,7 +1881,7 @@
 
 void RNA_property_boolean_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA *prop, int *values)
 {
-	BoolPropertyRNA *bprop = (BoolPropertyRNA *)prop;
+	BoolPropertyRNA *bprop = (BoolPropertyRNA *)rna_ensure_property(prop);
 	
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
 	BLI_assert(RNA_property_array_check(prop) != false);
@@ -2124,13 +2124,13 @@
 
 int RNA_property_int_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
 {
-	IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
+	IntPropertyRNA *iprop = (IntPropertyRNA *)rna_ensure_property(prop);
 	return iprop->defaultvalue;
 }
 
 void RNA_property_int_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA *prop, int *values)
 {
-	IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
+	IntPropertyRNA *iprop = (IntPropertyRNA *)rna_ensure_property(prop);
 	
 	BLI_assert(RNA_property_type(prop) == PROP_INT);
 	BLI_assert(RNA_property_array_check(prop) != false);
@@ -2401,7 +2401,7 @@
 
 float RNA_property_float_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
 {
-	FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
+	FloatPropertyRNA *fprop = (FloatPropertyRNA *)rna_ensure_property(prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
 	BLI_assert(RNA_property_array_check(prop) == false);
@@ -2411,7 +2411,7 @@
 
 void RNA_property_float_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA *prop, float *values)
 {
-	FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
+	FloatPropertyRNA *fprop = (FloatPropertyRNA *)rna_ensure_property(prop);
 	
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
 	BLI_assert(RNA_property_array_check(prop) != false);
@@ -2566,7 +2566,7 @@
 
 void RNA_property_string_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop, char *value)
 {
-	StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
+	StringPropertyRNA *sprop = (StringPropertyRNA *)rna_ensure_property(prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_STRING);
 
@@ -2650,7 +2650,7 @@
 
 int RNA_property_enum_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
 {
-	EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
+	EnumPropertyRNA *eprop = (EnumPropertyRNA *)rna_ensure_property(prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_ENUM);
 




More information about the Bf-blender-cvs mailing list