From e5ccb8773dd16b528eef300fdbc012fafb4e47ea Mon Sep 17 00:00:00 2001 From: Ken Hughes Date: Wed, 3 May 2006 17:15:33 +0000 Subject: [PATCH] Bugfix #4169: unlinking an empty object using scene.unlink() wasn't checking for ob->data == NULL, causing segfault. --- source/blender/python/api2_2x/Scene.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/blender/python/api2_2x/Scene.c b/source/blender/python/api2_2x/Scene.c index 51c425f43e9..05a03c35e06 100644 --- a/source/blender/python/api2_2x/Scene.c +++ b/source/blender/python/api2_2x/Scene.c @@ -822,7 +822,13 @@ static PyObject *Scene_unlink( BPy_Scene * self, PyObject * args ) base = object_in_scene( object, scene ); if( base ) { /* if it is, remove it */ - ((ID *)object->data)->us--; + /* check that there is a data block before decrementing refcount */ + if( (ID *)object->data ) + ((ID *)object->data)->us--; + else if( object->type != OB_EMPTY ) + return EXPP_ReturnPyObjError( PyExc_RuntimeError, + "Object has no data!" ); + BLI_remlink( &scene->base, base ); object->id.us--; MEM_freeN( base );