diff -ruN pmdk/src/test/blk_rw/blk_rw.c pmdk-1.12.1/src/test/blk_rw/blk_rw.c --- pmdk/src/test/blk_rw/blk_rw.c 2022-11-17 17:53:30.000000000 +0800 +++ pmdk-1.12.1/src/test/blk_rw/blk_rw.c 2022-12-04 20:47:41.633505093 +0800 @@ -63,7 +63,7 @@ const char *path = argv[2]; - PMEMblkpool *handle; + PMEMblkpool *handle = NULL; switch (*argv[3]) { case 'c': handle = pmemblk_create(path, Bsize, 0, diff -ruN pmdk/src/test/obj_realloc/obj_realloc.c pmdk-1.12.1/src/test/obj_realloc/obj_realloc.c --- pmdk/src/test/obj_realloc/obj_realloc.c 2022-11-17 17:53:31.000000000 +0800 +++ pmdk-1.12.1/src/test/obj_realloc/obj_realloc.c 2022-12-04 20:47:41.633505093 +0800 @@ -150,8 +150,8 @@ UT_ASSERT(usable_size_from >= size_from); - size_t check_size; - uint16_t checksum; + size_t check_size = 0; + uint16_t checksum = 0; if (zrealloc) { UT_ASSERT(util_is_zeroed(D_RO(D_RO(root)->obj), diff -ruN pmdk/src/test/unittest/unittest.h pmdk-1.12.1/src/test/unittest/unittest.h --- pmdk/src/test/unittest/unittest.h 2022-11-17 17:53:31.000000000 +0800 +++ pmdk-1.12.1/src/test/unittest/unittest.h 2022-12-04 20:47:41.633505093 +0800 @@ -102,6 +102,13 @@ /* XXX - fix this temp hack dup'ing util_strerror when we get mock for win */ void ut_strerror(int errnum, char *buff, size_t bufflen); +int ut_snprintf(const char *file, int line, const char *func, + char *str, size_t size, const char *format, ...); + +#define SNPRINTF(str, size, format, ...) \ + ut_snprintf(__FILE__, __LINE__, __func__, \ + str, size, format, __VA_ARGS__) + /* XXX - eliminate duplicated definitions in unittest.h and util.h */ #ifdef _WIN32 static inline int ut_util_statW(const wchar_t *path, diff -ruN pmdk/src/test/unittest/ut.c pmdk-1.12.1/src/test/unittest/ut.c --- pmdk/src/test/unittest/ut.c 2022-11-17 17:53:31.000000000 +0800 +++ pmdk-1.12.1/src/test/unittest/ut.c 2022-12-04 20:47:41.633505093 +0800 @@ -1094,6 +1094,27 @@ } #endif +int +ut_snprintf(const char *file, int line, const char *func, + char *str, size_t size, const char *format, ...) + { + va_list ap; + va_start(ap, format); + int ret = vsnprintf(str, size, format, ap); + va_end(ap); + + if (ret < 0) { + if (!errno) + errno = EIO; + ut_fatal(file, line, func, "!snprintf"); + } else if ((size_t)ret >= size) { + errno = ENOBUFS; + ut_fatal(file, line, func, "!snprintf"); + } + + return ret; + } + /* * ut_strtoi -- a strtoi call that cannot return error */