hi, I have fixed a bug in Valgrind. The Valgrind could not detect access outside the range of malloc.
comments, ok? -- ASOU Masato Index: devel/valgrind/Makefile =================================================================== RCS file: /cvs/ports/devel/valgrind/Makefile,v retrieving revision 1.31 diff -u -p -r1.31 Makefile --- devel/valgrind/Makefile 5 Aug 2023 03:32:22 -0000 1.31 +++ devel/valgrind/Makefile 4 Sep 2023 23:14:33 -0000 @@ -5,7 +5,7 @@ CATEGORIES = devel V = 3.21.0 DISTNAME = valgrind-${V} -REVISION = 0 +REVISION = 1 EXTRACT_SUFX = .tar.bz2 MASTER_SITES = https://sourceware.org/pub/valgrind/ Index: devel/valgrind/patches/patch-coregrind_m_replacemalloc_vg_replace_malloc_c =================================================================== RCS file: devel/valgrind/patches/patch-coregrind_m_replacemalloc_vg_replace_malloc_c diff -N devel/valgrind/patches/patch-coregrind_m_replacemalloc_vg_replace_malloc_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ devel/valgrind/patches/patch-coregrind_m_replacemalloc_vg_replace_malloc_c 4 Sep 2023 23:14:33 -0000 @@ -0,0 +1,263 @@ +--- coregrind/m_replacemalloc/vg_replace_malloc.c.orig ++++ coregrind/m_replacemalloc/vg_replace_malloc.c +@@ -222,7 +222,7 @@ + #define SET_ERRNO_ENOMEM if (__errno_location) \ + (*__errno_location ()) = VKI_ENOMEM; + #define SET_ERRNO_EINVAL {} +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + extern int *__error (void) __attribute__((weak)); + #define SET_ERRNO_ENOMEM if (__error) \ + (*__error ()) = VKI_ENOMEM; +@@ -430,7 +430,7 @@ + ALLOC_or_NULL(VG_Z_LIBC_SONAME, malloc, malloc); + ALLOC_or_NULL(SO_SYN_MALLOC, malloc, malloc); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + ALLOC_or_NULL(VG_Z_LIBC_SONAME, malloc, malloc); + ALLOC_or_NULL(SO_SYN_MALLOC, malloc, malloc); + +@@ -472,7 +472,7 @@ + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znwm, __builtin_new); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator new(unsigned int) + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwj, __builtin_new); +@@ -532,7 +532,7 @@ + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_t, __builtin_new_aligned); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator new(unsigned int) + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_t, __builtin_new_aligned); +@@ -592,7 +592,7 @@ + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnwmRKSt9nothrow_t, __builtin_new); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator new(unsigned, std::nothrow_t const&) + #if VG_WORDSIZE == 4 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); +@@ -652,7 +652,7 @@ + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnwmSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator new(unsigned int, std::align_val_t, std::nothrow_t const&) + #if VG_WORDSIZE == 4 + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnwjSt11align_val_tRKSt9nothrow_t, __builtin_new_aligned); +@@ -714,7 +714,7 @@ + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znam, __builtin_vec_new ); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator new[](unsigned int) + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znaj, __builtin_vec_new ); +@@ -774,7 +774,7 @@ + ALLOC_or_BOMB_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_t, __builtin_vec_new_aligned ); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator new[](unsigned int, std::align_val_t) + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_t, __builtin_vec_new_aligned ); +@@ -835,7 +835,7 @@ + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnamRKSt9nothrow_t, __builtin_vec_new ); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator new[](unsigned, std::nothrow_t const&) + #if VG_WORDSIZE == 4 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); +@@ -895,7 +895,7 @@ + ALLOC_or_NULL_ALIGNED(SO_SYN_MALLOC, _ZnamSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) + #if VG_WORDSIZE == 4 + ALLOC_or_NULL_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZnajSt11align_val_tRKSt9nothrow_t, __builtin_vec_new_aligned ); +@@ -973,7 +973,7 @@ + FREE(VG_Z_LIBC_SONAME, free, free ); + FREE(SO_SYN_MALLOC, free, free ); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + FREE(VG_Z_LIBC_SONAME, free, free ); + FREE(SO_SYN_MALLOC, free, free ); + +@@ -1024,7 +1024,7 @@ + FREE(VG_Z_LIBC_SONAME, _ZdlPv, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPv, __builtin_delete ); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPv, __builtin_delete ); + FREE(VG_Z_LIBCXX_SONAME, _ZdlPv, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPv, __builtin_delete ); +@@ -1072,7 +1072,7 @@ + DELETE_SIZED(SO_SYN_MALLOC, _ZdlPvm, __builtin_delete ); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator delete(void*, unsigned int) + #if __SIZEOF_SIZE_T__ == 4 + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvj, __builtin_delete ); +@@ -1160,7 +1160,7 @@ + DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdlPvmSt11align_val_t, __builtin_delete_aligned ); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator delete(void*, std::align_val_t) + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_t, __builtin_delete_aligned ); +@@ -1224,7 +1224,7 @@ + FREE(VG_Z_LIBC_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator delete(void*, std::nothrow_t const&) + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + FREE(VG_Z_LIBCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); +@@ -1254,7 +1254,7 @@ + + // no sized version of this operator + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator delete(void*, std::align_val_t, std::nothrow_t const&) + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdlPvSt11align_val_tRKSt9nothrow_t, __builtin_delete_aligned ); +@@ -1288,7 +1288,7 @@ + FREE(VG_Z_LIBC_SONAME, _ZdaPv, __builtin_vec_delete ); + FREE(SO_SYN_MALLOC, _ZdaPv, __builtin_vec_delete ); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator delete[](void*) + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPv, __builtin_vec_delete ); + FREE(VG_Z_LIBCXX_SONAME, _ZdaPv, __builtin_vec_delete ); +@@ -1323,7 +1323,7 @@ + DELETE_SIZED(SO_SYN_MALLOC, _ZdaPvm, __builtin_vec_delete ); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator delete[](void*, unsigned int) + #if __SIZEOF_SIZE_T__ == 4 + DELETE_SIZED(VG_Z_LIBSTDCXX_SONAME, _ZdaPvj, __builtin_vec_delete ); +@@ -1383,7 +1383,7 @@ + DELETE_SIZED_ALIGNED(SO_SYN_MALLOC, _ZdaPvmSt11align_val_t, __builtin_vec_delete_aligned ); + #endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator delete[](void*, std::align_val_t) + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdaPvSt11align_val_t, __builtin_vec_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdaPvSt11align_val_t, __builtin_vec_delete_aligned ); +@@ -1447,7 +1447,7 @@ + FREE(VG_Z_LIBC_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + FREE(SO_SYN_MALLOC, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator delete[](void*, std::nothrow_t const&) + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + FREE(VG_Z_LIBCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); +@@ -1477,7 +1477,7 @@ + + // no sized version of this operator + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + // operator delete[](void*, std::align_val_t, std::nothrow_t const&) + DELETE_ALIGNED(VG_Z_LIBSTDCXX_SONAME, _ZdaPvSt11align_val_tRKSt9nothrow_t, __builtin_vec_delete_aligned ); + DELETE_ALIGNED(VG_Z_LIBCXX_SONAME, _ZdaPvSt11align_val_tRKSt9nothrow_t, __builtin_vec_delete_aligned ); +@@ -1553,7 +1553,7 @@ + CALLOC(VG_Z_LIBC_SONAME, calloc); + CALLOC(SO_SYN_MALLOC, calloc); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + CALLOC(VG_Z_LIBC_SONAME, calloc); + CALLOC(SO_SYN_MALLOC, calloc); + +@@ -1648,7 +1648,7 @@ + REALLOC(VG_Z_LIBC_SONAME, realloc); + REALLOC(SO_SYN_MALLOC, realloc); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + REALLOC(VG_Z_LIBC_SONAME, realloc); + REALLOC(SO_SYN_MALLOC, realloc); + REALLOCF(VG_Z_LIBC_SONAME, reallocf); +@@ -1734,7 +1734,7 @@ + return v; \ + } + +-#if defined(VGO_freebsd) ++#if defined(VGO_freebsd) || defined(VGO_openbsd) + #define VG_MEMALIGN_MAKE_SIZE_MULTIPLE_ALIGN 1 + #else + #define VG_MEMALIGN_MAKE_SIZE_MULTIPLE_ALIGN 0 +@@ -1834,7 +1834,7 @@ + MEMALIGN(VG_Z_LIBC_SONAME, memalign); + MEMALIGN(SO_SYN_MALLOC, memalign); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + MEMALIGN(VG_Z_LIBC_SONAME, memalign); + MEMALIGN(SO_SYN_MALLOC, memalign); + +@@ -1890,7 +1890,7 @@ + VALLOC(VG_Z_LIBC_SONAME, valloc); + VALLOC(SO_SYN_MALLOC, valloc); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + VALLOC(VG_Z_LIBC_SONAME, valloc); + VALLOC(SO_SYN_MALLOC, valloc); + +@@ -2031,7 +2031,7 @@ + POSIX_MEMALIGN(VG_Z_LIBC_SONAME, posix_memalign); + POSIX_MEMALIGN(SO_SYN_MALLOC, posix_memalign); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + POSIX_MEMALIGN(VG_Z_LIBC_SONAME, posix_memalign); + POSIX_MEMALIGN(SO_SYN_MALLOC, posix_memalign); + +@@ -2176,7 +2176,7 @@ + ALIGNED_ALLOC(VG_Z_LIBC_SONAME, aligned_alloc); + ALIGNED_ALLOC(SO_SYN_MALLOC, aligned_alloc); + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + ALIGNED_ALLOC(G_Z_LIBC_SONAME, aligned_alloc); + ALIGNED_ALLOC(SO_SYN_MALLOC, aligned_alloc); + +@@ -2220,7 +2220,7 @@ + MALLOC_USABLE_SIZE(SO_SYN_MALLOC, dlmalloc_usable_size); + # endif + +-#elif defined(VGO_freebsd) ++#elif defined(VGO_freebsd) || defined(VGO_openbsd) + MALLOC_USABLE_SIZE(VG_Z_LIBC_SONAME, malloc_usable_size); + MALLOC_USABLE_SIZE(SO_SYN_MALLOC, malloc_usable_size); +