diff --git a/contrib/pg_upgrade/controldata.c b/contrib/pg_upgrade/controldata.c
index bfb1ed0ec8c9b9d41b84fc0cb380e07f1eff929a..5eed5ac3809741ef778e422ec2e0d9f60d858262 100644
--- a/contrib/pg_upgrade/controldata.c
+++ b/contrib/pg_upgrade/controldata.c
@@ -545,7 +545,7 @@ putenv2(const char *var, const char *val)
 	{
 #ifndef WIN32
 		char	   *envstr = (char *) pg_malloc(strlen(var) +
-												strlen(val) + 1);
+												strlen(val) + 2);
 
 		sprintf(envstr, "%s=%s", var, val);
 		putenv(envstr);