diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c
index 5f7b3114da..07e53cfee4 100644
--- a/src/backend/utils/adt/formatting.c
+++ b/src/backend/utils/adt/formatting.c
@@ -5988,8 +5988,11 @@ NUM_processor(FormatNode *node, NUMDesc *Num, char *inout,
 							{
 								/* just in case there are MB chars */
 								pattern_len = pg_mbstrlen(pattern);
-								memset(Np->inout_p, ' ', pattern_len);
-								Np->inout_p += pattern_len - 1;
+								if (pattern_len > 0)
+								{
+									memset(Np->inout_p, ' ', pattern_len);
+									Np->inout_p += pattern_len - 1;
+								}
 							}
 						}
 						else
