diff --git a/contrib/intarray/_int_gist.c b/contrib/intarray/_int_gist.c
index e8cf24fe47b907945fc8e9f1a0de8066e30b66d0..e2f1225d2c39746b80061592bc2be6313c3ef28f 100644
--- a/contrib/intarray/_int_gist.c
+++ b/contrib/intarray/_int_gist.c
@@ -47,8 +47,10 @@ g_int_consistent(PG_FUNCTION_ARGS)
 
 	/* sort query for fast search, key is already sorted */
 	CHECKARRVALID(query);
-	if (ARRISVOID(query))
+	if (ARRISVOID(query)) {
+		pfree( query );
 		PG_RETURN_BOOL(false);
+	}
 	PREPAREARR(query);
 
 	switch (strategy)
diff --git a/contrib/intarray/_intbig_gist.c b/contrib/intarray/_intbig_gist.c
index caa0ad48c6058e48e6b58e7f3231bd00b5ccf58c..ecd949d87a2bc94f65e4580773958c5bd6646426 100644
--- a/contrib/intarray/_intbig_gist.c
+++ b/contrib/intarray/_intbig_gist.c
@@ -510,12 +510,14 @@ g_intbig_consistent(PG_FUNCTION_ARGS)
 									  GETSIGN(DatumGetPointer(entry->key)),
 									  false);
 		PG_FREE_IF_COPY( query, 1 );
-		return retval;
+		PG_RETURN_BOOL(retval);
 	}
 
 	CHECKARRVALID(query);
-	if (ARRISVOID(query))
-		return FALSE;
+	if (ARRISVOID(query)) {
+		PG_FREE_IF_COPY( query, 1 );
+		PG_RETURN_BOOL(FALSE);
+	}
 
 	switch (strategy)
 	{