0002-check-json-validity.patch

text/x-diff

Filename: 0002-check-json-validity.patch
Type: text/x-diff
Part: 1
Message: Re: BUG #16171: Potential malformed JSON in explain output

Patch

Format: unified
Series: patch 0002
File+
contrib/auto_explain/auto_explain.c 5 0
diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c
index f69dde8..71cb4fa 100644
--- a/contrib/auto_explain/auto_explain.c
+++ b/contrib/auto_explain/auto_explain.c
@@ -18,6 +18,7 @@
 #include "commands/explain.h"
 #include "executor/instrument.h"
 #include "jit/jit.h"
+#include "utils/builtins.h"
 #include "utils/guc.h"
 
 PG_MODULE_MAGIC;
@@ -397,6 +398,10 @@ explain_ExecutorEnd(QueryDesc *queryDesc)
 			{
 				es->str->data[0] = '{';
 				es->str->data[es->str->len - 1] = '}';
+
+				/* Verify that it's valid JSON by feeding to json_in */
+				(void) DirectFunctionCall1(json_in,
+										   CStringGetDatum(es->str->data));
 			}
 
 			/*