aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-02-20 01:34:40 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-02-20 01:34:40 +0000
commitd18c1d1f51023bf9cf82ce555f2c8efca92060ee (patch)
tree559413d09e432fbcf60aedb20ef2fbfb7c49971e /src
parent72fa2426fdfdbd034007a53837dbeac9e4ca5735 (diff)
downloadpostgresql-d18c1d1f51023bf9cf82ce555f2c8efca92060ee.tar.gz
postgresql-d18c1d1f51023bf9cf82ce555f2c8efca92060ee.zip
Truncate incoming username and database name to NAMEDATALEN-1 characters
so that we don't reject overlength names unnecessarily.
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/postmaster.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 844b4c164d9..e807d3d0696 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.207 2001/02/11 23:12:28 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.208 2001/02/20 01:34:40 tgl Exp $
*
* NOTES
*
@@ -1123,6 +1123,14 @@ readStartupPacket(void *arg, PacketLen len, void *pkt)
if (port->database[0] == '\0')
StrNCpy(port->database, si->user, sizeof(port->database));
+ /* Truncate given database and user names to length of a Postgres name. */
+ /* This avoids lookup failures when overlength names are given. */
+
+ if ((int) sizeof(port->database) >= NAMEDATALEN)
+ port->database[NAMEDATALEN-1] = '\0';
+ if ((int) sizeof(port->user) >= NAMEDATALEN)
+ port->user[NAMEDATALEN-1] = '\0';
+
/* Check a user name was given. */
if (port->user[0] == '\0')