[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31268] trunk/blender/source/blender: - possibly bugfix /w uninitialized vars [#23270] Long directory name segmentation fault in File brower.
Campbell Barton
ideasman42 at gmail.com
Thu Aug 12 00:36:43 CEST 2010
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:
More information about the Bf-blender-cvs
mailing list