aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execUtils.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-02-06 17:35:20 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-02-06 17:35:20 +0000
commita8c3f161fb21f6f683ab6542bd6f93f04fa97ac6 (patch)
tree81e9c8d9ba5f48ffd2127063c70687ac611392e7 /src/backend/executor/execUtils.c
parent869585cc8f3e14b19479eafe38c9a231e2404af5 (diff)
downloadpostgresql-a8c3f161fb21f6f683ab6542bd6f93f04fa97ac6.tar.gz
postgresql-a8c3f161fb21f6f683ab6542bd6f93f04fa97ac6.zip
Remove typmod checking from the recent security-related patches. It turns
out that ExecEvalVar and friends don't necessarily have access to a tuple descriptor with correct typmod: it definitely can contain -1, and possibly might contain other values that are different from the Var's value. Arguably this should be cleaned up someday, but it's not a simple change, and in any case typmod discrepancies don't pose a security hazard. Per reports from numerous people :-( I'm not entirely sure whether the failure can occur in 8.0 --- the simple test cases reported so far don't trigger it there. But back-patch the change all the way anyway.
Diffstat (limited to 'src/backend/executor/execUtils.c')
-rw-r--r--src/backend/executor/execUtils.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 8285b306276..91efba011ca 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.143 2007/02/02 00:07:03 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.144 2007/02/06 17:35:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -632,10 +632,7 @@ ExecBuildProjectionInfo(List *targetList,
break;
}
attr = inputDesc->attrs[variable->varattno - 1];
- if (attr->attisdropped ||
- variable->vartype != attr->atttypid ||
- (variable->vartypmod != attr->atttypmod &&
- variable->vartypmod != -1))
+ if (attr->attisdropped || variable->vartype != attr->atttypid)
{
isVarList = false;
break;