X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fcore%2Fobject.c;h=c39faf4aed2c89f684a3e2c0c947b0eba7fe2d18;hb=2a0b199b7aac87fee49ebefe69d6f94a9045f4b8;hp=177ac4c3ada9a76009805187d0a0cd4eda322b9e;hpb=a6aba8073470766a456ee417cd948fe56c1e4f2c;p=sysdb.git diff --git a/src/core/object.c b/src/core/object.c index 177ac4c..c39faf4 100644 --- a/src/core/object.c +++ b/src/core/object.c @@ -82,7 +82,7 @@ sdb_object_vcreate(const char *name, sdb_type_t type, va_list ap) { sdb_object_t *obj; - if (type.size <= sizeof(sdb_object_t)) + if (type.size < sizeof(sdb_object_t)) return NULL; obj = malloc(type.size); @@ -149,6 +149,9 @@ sdb_object_deref(sdb_object_t *obj) if (obj->ref_cnt > 0) return; + /* we'd access free'd memory in case ref_cnt < 0 */ + assert(! obj->ref_cnt); + if (obj->type.destroy) obj->type.destroy(obj);