From 95c9c22633f291e0f78a35614847fc80c87d0880 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri, 22 Nov 2002 16:25:32 +0000
Subject: [PATCH] Fix a dozen or so places that were passing unpredictable data
 strings as elog format strings.  Hai-Chen Tu pointed out the problem in
 contrib/dbmirror, but it wasn't the only such error.

---
 contrib/cube/cubeparse.y   |  2 +-
 contrib/dbmirror/pending.c | 14 +++++++-------
 contrib/rserv/rserv.c      |  6 +++---
 contrib/seg/segparse.y     |  4 ++--
 src/pl/plpython/plpython.c |  4 ++--
 src/pl/tcl/pltcl.c         |  4 ++--
 6 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/contrib/cube/cubeparse.y b/contrib/cube/cubeparse.y
index 95bc016431d..854912857bb 100644
--- a/contrib/cube/cubeparse.y
+++ b/contrib/cube/cubeparse.y
@@ -200,7 +200,7 @@ int cube_yyerror ( char *msg ) {
 	  );
 
   reset_parse_buffer();     
-  elog(ERROR, buf);
+  elog(ERROR, "%s", buf);
   return 0;
 }
 
diff --git a/contrib/dbmirror/pending.c b/contrib/dbmirror/pending.c
index acf71082c5d..79d875456d5 100644
--- a/contrib/dbmirror/pending.c
+++ b/contrib/dbmirror/pending.c
@@ -1,6 +1,6 @@
 /****************************************************************************
  * pending.c
- * $Id: pending.c,v 1.8 2002/11/22 16:04:41 momjian Exp $
+ * $Id: pending.c,v 1.9 2002/11/22 16:25:29 tgl Exp $
  *
  * This file contains a trigger for Postgresql-7.x to record changes to tables
  * to a pending table for mirroring.
@@ -253,7 +253,7 @@ storeKeyInfo(char *cpTableName, HeapTuple tTupleData,
 		return -1;
 	}
 #if defined DEBUG_OUTPUT
-	elog(NOTICE, "%s", cpKeyData);
+	elog(NOTICE, "KeyData: %s", cpKeyData);
 #endif
 	saPlanData[0] = PointerGetDatum(cpKeyData);
 
@@ -268,7 +268,7 @@ storeKeyInfo(char *cpTableName, HeapTuple tTupleData,
 		return -1;
 	}
 #if defined DEBUG_OUTPUT
-	elog(NOTICE, "INSERT SUCCESFULL");
+	elog(NOTICE, "Insert successful");
 #endif
 
 	return 0;
@@ -351,7 +351,7 @@ storeData(char *cpTableName, HeapTuple tTupleData, TupleDesc tTupleDesc,
 		return -1;
 	}
 #if defined DEBUG_OUTPUT
-	elog(NOTICE, "INSERT SUCCESFULL");
+	elog(NOTICE, "Insert successful");
 #endif
 
 	return 0;
@@ -437,7 +437,7 @@ packageData(HeapTuple tTupleData, TupleDesc tTupleDesc,
 		cpFieldName = DatumGetPointer(NameGetDatum(&tTupleDesc->attrs
 										 [iColumnCounter - 1]->attname));
 #if defined DEBUG_OUTPUT
-		elog(NOTICE, "%s", cpFieldName);
+		elog(NOTICE, "FieldName: %s", cpFieldName);
 #endif
 		while (iDataBlockSize - iUsedDataBlock < strlen(cpFieldName) + 6)
 		{
@@ -465,7 +465,7 @@ packageData(HeapTuple tTupleData, TupleDesc tTupleDesc,
 
 		}
 #if defined DEBUG_OUTPUT
-		elog(NOTICE, "%s", cpFieldData);
+		elog(NOTICE, "FieldData: %s", cpFieldData);
 		elog(NOTICE, "Starting format loop");
 #endif
 		while (*cpUnFormatedPtr != 0)
@@ -499,7 +499,7 @@ packageData(HeapTuple tTupleData, TupleDesc tTupleDesc,
 		sprintf(cpFormatedPtr, "' ");
 		iUsedDataBlock = iUsedDataBlock + 2;
 #if defined DEBUG_OUTPUT
-		elog(NOTICE, "%s", cpDataBlock);
+		elog(NOTICE, "DataBlock: %s", cpDataBlock);
 #endif
 
 	}							/* for iColumnCounter  */
diff --git a/contrib/rserv/rserv.c b/contrib/rserv/rserv.c
index 517289dc1cc..635fcce64a1 100644
--- a/contrib/rserv/rserv.c
+++ b/contrib/rserv/rserv.c
@@ -132,7 +132,7 @@ _rserv_log_()
 			 GetCurrentTransactionId(), deleted, rel->rd_id, okey);
 
 	if (debug)
-		elog(DEBUG3, sql);
+		elog(DEBUG3, "sql: %s", sql);
 
 	ret = SPI_exec(sql, 0);
 
@@ -153,7 +153,7 @@ _rserv_log_()
 				 deleted, okey);
 
 		if (debug)
-			elog(DEBUG3, sql);
+			elog(DEBUG3, "sql: %s", sql);
 
 		ret = SPI_exec(sql, 0);
 
@@ -177,7 +177,7 @@ _rserv_log_()
 				 rel->rd_id, GetCurrentTransactionId(), okey);
 
 		if (debug)
-			elog(DEBUG3, sql);
+			elog(DEBUG3, "sql: %s", sql);
 
 		ret = SPI_exec(sql, 0);
 
diff --git a/contrib/seg/segparse.y b/contrib/seg/segparse.y
index 9e18379bc88..67f5b9f43dd 100644
--- a/contrib/seg/segparse.y
+++ b/contrib/seg/segparse.y
@@ -144,7 +144,7 @@ float seg_atof ( char *value ) {
   if ( errno ) {
     snprintf(buf, 256, "numeric value %s unrepresentable", value);
     reset_parse_buffer();     
-    elog(ERROR, buf);
+    elog(ERROR, "%s", buf);
   }
 
   return result;
@@ -175,7 +175,7 @@ int seg_yyerror ( char *msg ) {
 	  );
 
   reset_parse_buffer();     
-  elog(ERROR, buf);
+  elog(ERROR, "%s", buf);
   return 0;
 }
 
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c
index 43c34271961..099388674a6 100644
--- a/src/pl/plpython/plpython.c
+++ b/src/pl/plpython/plpython.c
@@ -29,7 +29,7 @@
  * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
  *
  * IDENTIFICATION
- *	$Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.26 2002/10/19 22:10:58 tgl Exp $
+ *	$Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.27 2002/11/22 16:25:30 tgl Exp $
  *
  *********************************************************************
  */
@@ -2733,7 +2733,7 @@ PLy_output(volatile int level, PyObject * self, PyObject * args)
 		RERAISE_EXC();
 	}
 
-	elog(level, sv);
+	elog(level, "%s", sv);
 
 	RESTORE_EXC();
 
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index 0210dfd8174..bebb82ebdf0 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -31,7 +31,7 @@
  *	  ENHANCEMENTS, OR MODIFICATIONS.
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.66 2002/10/19 22:10:58 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.67 2002/11/22 16:25:32 tgl Exp $
  *
  **********************************************************************/
 
@@ -1303,7 +1303,7 @@ pltcl_elog(ClientData cdata, Tcl_Interp *interp,
 	 * and return to the caller (if not catched)
 	 ************************************************************/
 	UTF_BEGIN;
-	elog(level, UTF_U2E(argv[2]));
+	elog(level, "%s", UTF_U2E(argv[2]));
 	UTF_END;
 	memcpy(&Warn_restart, &save_restart, sizeof(Warn_restart));
 	return TCL_OK;
-- 
GitLab