BUG #14928: Unchecked SearchSysCacheCopy1() return value

From: bianpan2016(at)163(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Cc: bianpan2016(at)163(dot)com
Subject: BUG #14928: Unchecked SearchSysCacheCopy1() return value
Date: 2017-11-27 09:13:41
Message-ID: 20171127091341.1468.72696@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 14928
Logged by: Pan Bian
Email address: bianpan2016(at)163(dot)com
PostgreSQL version: 10.1
Operating system: Linux
Description:

File: postgresql-10.1/src/backend/commands/tablecmds.c
Function: ATExecDetachPartition
Line: 13816

Function SearchSysCacheCopy1() may return a NULL pointer if there is no
enough memory. But in function ATExecDetachPartition(), its return value is
not checked, which may result in NULL dereference (see line 13818).

For your convenience, I copy and paste related codes as follows.

13815 classRel = heap_open(RelationRelationId, RowExclusiveLock);
13816 tuple = SearchSysCacheCopy1(RELOID,
13817
ObjectIdGetDatum(RelationGetRelid(partRel)));
13818 Assert(((Form_pg_class) GETSTRUCT(tuple))->relispartition);
13819
13820 (void) SysCacheGetAttr(RELOID, tuple,
Anum_pg_class_relpartbound,
13821 &isnull);
13822 Assert(!isnull);

Thank you!

Pan Bian

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message bianpan2016 2017-11-27 09:31:07 BUG #14929: Unchecked AllocateDir() return value in restoreTwoPhaseData()
Previous Message bianpan2016 2017-11-27 09:01:05 BUG #14927: Unchecked SearchSysCache1() return value