pgsql: Make LOAD of an already-loaded library into a no-op, instead of

Поиск
Список
Период
Сортировка
От tgl@postgresql.org (Tom Lane)
Тема pgsql: Make LOAD of an already-loaded library into a no-op, instead of
Дата
Msg-id 20090903221130.30A68753FB7@cvs.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Log Message:
-----------
Make LOAD of an already-loaded library into a no-op, instead of attempting
to unload and re-load the library.

The difficulty with unloading a library is that we haven't defined safe
protocols for doing so.  In particular, there's no safe mechanism for
getting out of a "hook" function pointer unless libraries are unloaded
in reverse order of loading.  And there's no mechanism at all for undefining
a custom GUC variable, so GUC would be left with a pointer to an old value
that might or might not still be valid, and very possibly wouldn't be in
the same place anymore.

While the unload and reload behavior had some usefulness in easing
development of new loadable libraries, it's of no use whatever to normal
users, so just disabling it isn't giving up that much.  Someday we might
care to expend the effort to develop safe unload protocols; but even if
we did, there'd be little certainty that every third-party loadable module
was following them, so some security restrictions would still be needed.

Back-patch to 8.2; before that, LOAD was superuser-only anyway.

Security: unprivileged users could crash backend.  CVE not assigned yet

Tags:
----
REL8_2_STABLE

Modified Files:
--------------
    pgsql/doc/src/sgml/ref:
        create_function.sgml (r1.70.2.2 -> r1.70.2.3)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/create_function.sgml?r1=1.70.2.2&r2=1.70.2.3)
        load.sgml (r1.23 -> r1.23.2.1)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/load.sgml?r1=1.23&r2=1.23.2.1)
    pgsql/doc/src/sgml:
        xfunc.sgml (r1.120.2.1 -> r1.120.2.2)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/xfunc.sgml?r1=1.120.2.1&r2=1.120.2.2)
    pgsql/src/backend/utils/fmgr:
        dfmgr.c (r1.92 -> r1.92.2.1)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/fmgr/dfmgr.c?r1=1.92&r2=1.92.2.1)

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

Предыдущее
От: tgl@postgresql.org (Tom Lane)
Дата:
Сообщение: pgsql: Make LOAD of an already-loaded library into a no-op, instead of
Следующее
От: tgl@postgresql.org (Tom Lane)
Дата:
Сообщение: pgsql: Disallow RESET ROLE and RESET SESSION AUTHORIZATION inside