]> granicus.if.org Git - postgresql/commitdiff
Don't pass strings directly to errdetail() and errhint() - use
authorMagnus Hagander <magnus@hagander.net>
Thu, 20 Nov 2008 15:36:22 +0000 (15:36 +0000)
committerMagnus Hagander <magnus@hagander.net>
Thu, 20 Nov 2008 15:36:22 +0000 (15:36 +0000)
%s to unescape them. Fixes a potential security issue (in as yet
unreleased code)

src/pl/plpgsql/src/pl_exec.c

index 1393fb265d16117124e48f9e9ff783bb94010431..35cd6cbaff5f79436a5a739c5c17a3e00487046e 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.224 2008/11/05 00:07:54 tgl Exp $
+ *       $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.225 2008/11/20 15:36:22 mha Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2538,8 +2538,8 @@ exec_stmt_raise(PLpgSQL_execstate *estate, PLpgSQL_stmt_raise *stmt)
        ereport(stmt->elog_level,
                        (err_code ? errcode(err_code) : 0,
                         errmsg_internal("%s", err_message),
-                        (err_detail != NULL) ? errdetail(err_detail) : 0,
-                        (err_hint != NULL) ? errhint(err_hint) : 0));
+                        (err_detail != NULL) ? errdetail("%s", err_detail) : 0,
+                        (err_hint != NULL) ? errhint("%s", err_hint) : 0));
 
        estate->err_text = NULL;        /* un-suppress... */