5139a9c064
The foreach_get/foreach_set methods of bpy_prop_array get/set the entire contents of the array, but they were checking that the length of the input sequence was equal to the length of the current array dimension rather than the total length of all dimensions of the array. This would read/write memory after the end of the passed in sequence when the property was a multidimensional array. Performing `foreach_get` with a Python list with length matching the length of the current dimension of a multidimensional array would crash a debug build due to the trailing pad bytes of the temporarily allocated array being overwritten. This patch fixes `pyprop_array_foreach_getset` by changing the function used to get the expected sequence size, to the RNA function that gets the total length of the array across all its dimensions. The tests have be updated to additionally test multidimensional array properties. Pull Request: https://projects.blender.org/blender/blender/pulls/116457