diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2009-01-30 17:24:47 +0000 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2009-01-30 17:24:47 +0000 |
commit | 4265ed9f4e6e7bfdd26cd7879006a14fce3e5640 (patch) | |
tree | cb18c7fbc00aeb3871cc623044b6d9dfd837b924 /src/backend/commands/dbcommands.c | |
parent | cb629f72255e19bce3aea3acb13ec2efcc0d47ec (diff) | |
download | postgresql-4265ed9f4e6e7bfdd26cd7879006a14fce3e5640.tar.gz postgresql-4265ed9f4e6e7bfdd26cd7879006a14fce3e5640.zip |
Check that connection limit is within valid range. IOW, not < -1.
It's missing in older versions too, but it doesn't seem worth
back-porting. All negative are just harmlessly treated as "no limit", and
tightening the check might even brake an application that relies on it.
Diffstat (limited to 'src/backend/commands/dbcommands.c')
-rw-r--r-- | src/backend/commands/dbcommands.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index 2ff7021f285..f9dcb973c0d 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -13,7 +13,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.218 2009/01/20 18:59:37 heikki Exp $ + * $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.219 2009/01/30 17:24:47 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -244,7 +244,13 @@ createdb(const CreatedbStmt *stmt) dbctype = strVal(dctype->arg); if (dconnlimit && dconnlimit->arg) + { dbconnlimit = intVal(dconnlimit->arg); + if (dbconnlimit < -1) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("invalid connection limit: %d", dbconnlimit))); + } /* obtain OID of proposed owner */ if (dbowner) @@ -1319,7 +1325,13 @@ AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel) } if (dconnlimit) + { connlimit = intVal(dconnlimit->arg); + if (connlimit < -1) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("invalid connection limit: %d", connlimit))); + } /* * Get the old tuple. We don't need a lock on the database per se, |