Revision: 31268 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31268 Author: campbellbarton Date: 2010-08-12 00:36:43 +0200 (Thu, 12 Aug 2010)
Log Message: ----------- - possibly bugfix /w uninitialized vars [#23270] Long directory name segmentation fault in File brower. - in exceptional cases vertcos_to_key() could return with KeyBlock pointing to freed memory. - invalid use of realloc() in BLI_builddir() Modified Paths: -------------- trunk/blender/source/blender/blenkernel/intern/key.c trunk/blender/source/blender/blenlib/intern/storage.c trunk/blender/source/blender/imbuf/intern/thumbs.c trunk/blender/source/blender/python/doc/sphinx_doc_gen.py Modified: trunk/blender/source/blender/blenkernel/intern/key.c =================================================================== --- trunk/blender/source/blender/blenkernel/intern/key.c 2010-08-11 21:51:31 UTC (rev 31267) +++ trunk/blender/source/blender/blenkernel/intern/key.c 2010-08-11 22:36:43 UTC (rev 31268) @@ -1850,10 +1850,13 @@ tot= count_curveverts(&cu->nurb); } + if (tot == 0) { + kb->data= NULL; + return; + } + fp= kb->data= MEM_callocN(tot*elemsize, "key_to_vertcos vertCos"); - if (tot == 0) return; - /* Copy coords to keyblock */ if(ELEM(ob->type, OB_MESH, OB_LATTICE)) { Modified: trunk/blender/source/blender/blenlib/intern/storage.c =================================================================== --- trunk/blender/source/blender/blenlib/intern/storage.c 2010-08-11 21:51:31 UTC (rev 31267) +++ trunk/blender/source/blender/blenlib/intern/storage.c 2010-08-11 22:36:43 UTC (rev 31268) @@ -237,8 +237,19 @@ if (newnum){ - if (files) files=(struct direntry *)realloc(files,(totnum+newnum) * sizeof(struct direntry)); - else files=(struct direntry *)malloc(newnum * sizeof(struct direntry)); + if(files) { + void *tmp= realloc(files, (totnum+newnum) * sizeof(struct direntry)); + if(tmp) { + files= (struct direntry *)tmp; + } + else { /* realloc fail */ + free(files); + files= NULL; + } + } + + if(files==NULL) + files=(struct direntry *)malloc(newnum * sizeof(struct direntry)); if (files){ dlink = (struct dirlink *) dirbase->first; Modified: trunk/blender/source/blender/imbuf/intern/thumbs.c =================================================================== --- trunk/blender/source/blender/imbuf/intern/thumbs.c 2010-08-11 21:51:31 UTC (rev 31267) +++ trunk/blender/source/blender/imbuf/intern/thumbs.c 2010-08-11 22:36:43 UTC (rev 31268) @@ -248,8 +248,8 @@ char tdir[FILE_MAX]; char temp[FILE_MAX]; char mtime[40]= "0"; /* incase we can't stat the file */ - char cwidth[40]; - char cheight[40]; + char cwidth[40]= "0"; /* incase images have no data */ + char cheight[40]= "0"; char thumb[40]; short tsize = 128; short ex, ey; Modified: trunk/blender/source/blender/python/doc/sphinx_doc_gen.py =================================================================== --- trunk/blender/source/blender/python/doc/sphinx_doc_gen.py 2010-08-11 21:51:31 UTC (rev 31267) +++ trunk/blender/source/blender/python/doc/sphinx_doc_gen.py 2010-08-11 22:36:43 UTC (rev 31268) @@ -269,11 +269,11 @@ descr_items = [(key, descr) for key, descr in sorted(value.__dict__.items()) if not key.startswith("__")] for key, descr in descr_items: - if type(descr) == ClassMethodDescriptorType: # GetSetDescriptorType's are not documented yet + if type(descr) == ClassMethodDescriptorType: py_descr2sphinx(" ", fw, descr, module_name, type_name, key) for key, descr in descr_items: - if type(descr) == MethodDescriptorType: # GetSetDescriptorType's are not documented yet + if type(descr) == MethodDescriptorType: py_descr2sphinx(" ", fw, descr, module_name, type_name, key) for key, descr in descr_items: _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs