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 -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to