diff --git a/src/backend/utils/mmgr/dsa.c b/src/backend/utils/mmgr/dsa.c
index 3eb3d4d..5026bc9 100644
--- a/src/backend/utils/mmgr/dsa.c
+++ b/src/backend/utils/mmgr/dsa.c
@@ -762,11 +762,10 @@ dsa_pointer
 dsa_allocate0(dsa_area *area, Size size)
 {
 	dsa_pointer dp;
-	char	   *object;
 
 	dp = dsa_allocate(area, size);
-	object = dsa_get_address(area, dp);
-	memset(object, 0, size);
+	if (DsaPointerIsValid(dp))
+		memset(dsa_get_address(area, dp), 0, size);
 
 	return dp;
 }
