[PATCH][BUG FIX] Unsafe access pointers.

Поиск
Список
Период
Сортировка
От Ranier Vilela
Тема [PATCH][BUG FIX] Unsafe access pointers.
Дата
Msg-id MN2PR18MB292725065DD177D4E34D3E9EE3700@MN2PR18MB2927.namprd18.prod.outlook.com
обсуждение исходный текст
Ответы Re: [PATCH][BUG FIX] Unsafe access pointers.  (Daniel Gustafsson <daniel@yesql.se>)
Re: [PATCH][BUG FIX] Unsafe access pointers.  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Список pgsql-hackers
Hi,
Last time, I promise.

It's probably not happening, but it can happen, I think.

Best regards.
Ranier Vilela

--- \dll\postgresql-12.0\a\backend\access\brin\brin_validate.c    Mon Sep 30 17:06:55 2019
+++ brin_validate.c    Fri Nov 15 08:14:58 2019
@@ -57,8 +57,10 @@

     /* Fetch opclass information */
     classtup = SearchSysCache1(CLAOID, ObjectIdGetDatum(opclassoid));
-    if (!HeapTupleIsValid(classtup))
+    if (!HeapTupleIsValid(classtup)) {
         elog(ERROR, "cache lookup failed for operator class %u", opclassoid);
+        return false;
+    }
     classform = (Form_pg_opclass) GETSTRUCT(classtup);

     opfamilyoid = classform->opcfamily;
@@ -67,8 +69,11 @@

     /* Fetch opfamily information */
     familytup = SearchSysCache1(OPFAMILYOID, ObjectIdGetDatum(opfamilyoid));
-    if (!HeapTupleIsValid(familytup))
+    if (!HeapTupleIsValid(familytup)) {
         elog(ERROR, "cache lookup failed for operator family %u", opfamilyoid);
+        ReleaseSysCache(classtup);
+        return false;
+    }
     familyform = (Form_pg_opfamily) GETSTRUCT(familytup);

     opfamilyname = NameStr(familyform->opfname);

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Martin Liška
Дата:
Сообщение: Re: segfault in geqo on experimental gcc animal
Следующее
От: Daniel Gustafsson
Дата:
Сообщение: Re: [PATCH][BUG FIX] Unsafe access pointers.