Changeset: 7cf166e16d73 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7cf166e16d73
Modified Files:
gdk/gdk_tracer.c
gdk/gdk_utils.c
gdk/gdk_utils.h
Branch: Jun2023
Log Message:
Some small fixes to debug code.
diffs (80 lines):
diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -114,6 +114,8 @@ GDKtracer_init_trace_file(const char *db
/* we use malloc/free instead of GDKmalloc/GDKfree to avoid
* possible recursion */
+#undef malloc
+#undef free
if (dbtrace == NULL) {
write_to_tracer = false;
if (dbpath == NULL) {
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -2032,11 +2032,8 @@ GDKfree(void *s)
#if !defined(NDEBUG) && !defined(SANITIZER)
assert((asize & 2) == 0); /* check against duplicate free */
/* check for out-of-bounds writes */
- {
- size_t i = ((size_t *) s)[-2]; /* how much asked for last */
- for (; i < asize - MALLOC_EXTRA_SPACE; i++)
- assert(((char *) s)[i] == '\xBD');
- }
+ for (size_t i = ((size_t *) s)[-2]; i < asize - MALLOC_EXTRA_SPACE; i++)
+ assert(((char *) s)[i] == '\xBD');
((size_t *) s)[-1] |= 2; /* indicate area is freed */
/* overwrite memory that is to be freed with a pattern that
@@ -2056,8 +2053,8 @@ GDKrealloc(void *s, size_t size)
size_t nsize, asize;
#if !defined(NDEBUG) && !defined(SANITIZER)
size_t osize;
- size_t *os;
#endif
+ size_t *os = s;
assert(size != 0);
@@ -2065,7 +2062,7 @@ GDKrealloc(void *s, size_t size)
return GDKmalloc(size);
nsize = (size + 7) & ~7;
- asize = ((size_t *) s)[-1]; /* how much allocated last */
+ asize = os[-1]; /* how much allocated last */
if (size > SMALL_MALLOC &&
nsize > asize &&
@@ -2077,16 +2074,12 @@ GDKrealloc(void *s, size_t size)
#if !defined(NDEBUG) && !defined(SANITIZER)
assert((asize & 2) == 0); /* check against duplicate free */
/* check for out-of-bounds writes */
- osize = ((size_t *) s)[-2]; /* how much asked for last */
- {
- size_t i;
- for (i = osize; i < asize - MALLOC_EXTRA_SPACE; i++)
- assert(((char *) s)[i] == '\xBD');
- }
+ osize = os[-2]; /* how much asked for last */
+ for (size_t i = osize; i < asize - MALLOC_EXTRA_SPACE; i++)
+ assert(((char *) s)[i] == '\xBD');
/* if shrinking, write debug pattern into to-be-freed memory */
DEADBEEFCHK if (size < osize)
memset((char *) s + size, '\xDB', osize - size);
- os = s;
os[-1] |= 2; /* indicate area is freed */
#endif
s = realloc((char *) s - MALLOC_EXTRA_SPACE,
diff --git a/gdk/gdk_utils.h b/gdk/gdk_utils.h
--- a/gdk/gdk_utils.h
+++ b/gdk/gdk_utils.h
@@ -168,7 +168,7 @@ gdk_export int GDKms(void);
({ \
void *_ptr = (p); \
size_t _size = (s); \
- char _buf[12]; \
+ char _buf[2*sizeof(void*)+3]; \
snprintf(_buf, sizeof(_buf), "%p", _ptr); \
void *_res = GDKrealloc(_ptr, _size); \
TRC_DEBUG(ALLOC, "GDKrealloc(%s,%zu) -> %p\n", \
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]