Issue #21233: Fix _PyObject_Alloc() when compiled with WITH_VALGRIND defined
diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c
index e16a1db..af2bab0 100644
--- a/Objects/obmalloc.c
+++ b/Objects/obmalloc.c
@@ -1176,6 +1176,9 @@
 
     _Py_AllocatedBlocks++;
 
+    assert(nelem <= PY_SSIZE_T_MAX / elsize);
+    nbytes = nelem * elsize;
+
 #ifdef WITH_VALGRIND
     if (UNLIKELY(running_on_valgrind == -1))
         running_on_valgrind = RUNNING_ON_VALGRIND;
@@ -1183,9 +1186,6 @@
         goto redirect;
 #endif
 
-    assert(nelem <= PY_SSIZE_T_MAX / elsize);
-    nbytes = nelem * elsize;
-
     if (nelem == 0 || elsize == 0)
         goto redirect;