summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane1999-06-04 21:13:38 +0000
committerTom Lane1999-06-04 21:13:38 +0000
commit4cd4a54c80fc1ed7b16039a71706dc80ce5d422e (patch)
treeaeb8e854651dc4d5c6766a92fa0cbf49865ae061
parent1c3c08053452f342d9cf09aff9a36a5939508412 (diff)
Add configurable option controlling security checks in LO functions.
-rw-r--r--src/backend/libpq/be-fsstubs.c6
-rw-r--r--src/include/config.h.in12
2 files changed, 16 insertions, 2 deletions
diff --git a/src/backend/libpq/be-fsstubs.c b/src/backend/libpq/be-fsstubs.c
index 135eb03b2da..443c2db76dc 100644
--- a/src/backend/libpq/be-fsstubs.c
+++ b/src/backend/libpq/be-fsstubs.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.34 1999/05/31 22:53:57 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.35 1999/06/04 21:13:38 tgl Exp $
*
* NOTES
* This should be moved to a more appropriate place. It is here
@@ -334,10 +334,12 @@ lo_import(text *filename)
LargeObjectDesc *lobj;
Oid lobjOid;
+#ifndef ALLOW_DANGEROUS_LO_FUNCTIONS
if (!superuser())
elog(ERROR, "You must have Postgres superuser privilege to use "
"server-side lo_import().\n\tAnyone can use the "
"client-side lo_import() provided by libpq.");
+#endif
/*
* open the file to be read in
@@ -405,10 +407,12 @@ lo_export(Oid lobjId, text *filename)
LargeObjectDesc *lobj;
mode_t oumask;
+#ifndef ALLOW_DANGEROUS_LO_FUNCTIONS
if (!superuser())
elog(ERROR, "You must have Postgres superuser privilege to use "
"server-side lo_export().\n\tAnyone can use the "
"client-side lo_export() provided by libpq.");
+#endif
/*
* open the inversion "object"
diff --git a/src/include/config.h.in b/src/include/config.h.in
index f90501ed11b..9afb5e251f0 100644
--- a/src/include/config.h.in
+++ b/src/include/config.h.in
@@ -342,7 +342,7 @@ extern void srandom(unsigned int seed);
#undef USE_POSIX_SIGNALS
/*
- * Code below this point should not require changes
+ * Pull in OS-specific declarations (using link created by configure)
*/
#include "os.h"
@@ -495,6 +495,16 @@ extern void srandom(unsigned int seed);
/* #define PSQL_ALWAYS_GET_PASSWORDS */
/*
+ * Define this if you want to allow the lo_import and lo_export SQL functions
+ * to be executed by ordinary users. By default these functions are only
+ * available to the Postgres superuser. CAUTION: these functions are
+ * SECURITY HOLES since they can read and write any file that the Postgres
+ * backend has permission to access. If you turn this on, don't say we
+ * didn't warn you.
+ */
+/* #define ALLOW_DANGEROUS_LO_FUNCTIONS */
+
+/*
* Use btree bulkload code:
* this code is moderately slow (~10% slower) compared to the regular
* btree (insertion) build code on sorted or well-clustered data. on