aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/util/relnode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/util/relnode.c')
-rw-r--r--src/backend/optimizer/util/relnode.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/backend/optimizer/util/relnode.c b/src/backend/optimizer/util/relnode.c
index 76dad17e336..5d83f60eb9a 100644
--- a/src/backend/optimizer/util/relnode.c
+++ b/src/backend/optimizer/util/relnode.c
@@ -406,9 +406,8 @@ find_base_rel(PlannerInfo *root, int relid)
{
RelOptInfo *rel;
- Assert(relid > 0);
-
- if (relid < root->simple_rel_array_size)
+ /* use an unsigned comparison to prevent negative array element access */
+ if ((uint32) relid < (uint32) root->simple_rel_array_size)
{
rel = root->simple_rel_array[relid];
if (rel)
@@ -432,9 +431,8 @@ find_base_rel(PlannerInfo *root, int relid)
RelOptInfo *
find_base_rel_ignore_join(PlannerInfo *root, int relid)
{
- Assert(relid > 0);
-
- if (relid < root->simple_rel_array_size)
+ /* use an unsigned comparison to prevent negative array element access */
+ if ((uint32) relid < (uint32) root->simple_rel_array_size)
{
RelOptInfo *rel;
RangeTblEntry *rte;