diff --git a/docs/changes.xml b/docs/changes.xml
index 3ef1ac3f..2e2f9b04 100644
--- a/docs/changes.xml
+++ b/docs/changes.xml
@@ -31,6 +31,12 @@ NGINX Unit updated to 1.27.0.
date="" time=""
packager="Andrei Belov <defan@nginx.com>">
+
+
+compatibility with GCC 12.
+
+
+
the controller process could crash when a chain with more than 4
diff --git a/src/nxt_malloc.c b/src/nxt_malloc.c
index fed58e96..5ea7322f 100644
--- a/src/nxt_malloc.c
+++ b/src/nxt_malloc.c
@@ -64,17 +64,24 @@ nxt_zalloc(size_t size)
void *
nxt_realloc(void *p, size_t size)
{
- void *n;
+ void *n;
+ uintptr_t ptr;
+
+ /*
+ * Workaround for a warning on GCC 12 about using "p" pointer in debug log
+ * after realloc().
+ */
+ ptr = (uintptr_t) p;
n = realloc(p, size);
if (nxt_fast_path(n != NULL)) {
- nxt_log_debug(nxt_malloc_log(), "realloc(%p, %uz): %p", p, size, n);
+ nxt_log_debug(nxt_malloc_log(), "realloc(%p, %uz): %p", ptr, size, n);
} else {
nxt_log_alert_moderate(&nxt_malloc_log_moderation, nxt_malloc_log(),
"realloc(%p, %uz) failed %E",
- p, size, nxt_errno);
+ ptr, size, nxt_errno);
}
return n;