[Zope-Checkins] CVS: Zope3/lib/python/Persistence/BTrees - BucketTemplate.c:1.8
Tim Peters
tim.one@comcast.net
Mon, 17 Jun 2002 15:04:32 -0400
Update of /cvs-repository/Zope3/lib/python/Persistence/BTrees
In directory cvs.zope.org:/tmp/cvs-serv31816
Modified Files:
BucketTemplate.c
Log Message:
Bucket_grow(): This could leak memory in error cases; repaired.
=== Zope3/lib/python/Persistence/BTrees/BucketTemplate.c 1.7 => 1.8 ===
UNLESS (noval) {
- UNLESS (values = BTree_Realloc(self->values,
- sizeof(VALUE_TYPE) * newsize))
+ values = BTree_Realloc(self->values, sizeof(VALUE_TYPE) * newsize);
+ if (values == NULL) {
+ free(keys);
return -1;
+ }
self->values = values;
}
self->keys = keys;
@@ -154,8 +156,12 @@
UNLESS (self->keys = BTree_Malloc(sizeof(KEY_TYPE) * newsize))
return -1;
UNLESS (noval) {
- UNLESS (self->values = BTree_Malloc(sizeof(VALUE_TYPE) * newsize))
+ self->values = BTree_Malloc(sizeof(VALUE_TYPE) * newsize);
+ if (self->values == NULL) {
+ free(self->keys);
+ self->keys = NULL;
return -1;
+ }
}
}
self->size = newsize;