From: | Tomas Vondra <tv(at)fuzzy(dot)cz> |
---|---|
To: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | why local_preload_libraries does require a separate directory ? |
Date: | 2011-12-03 14:56:46 |
Message-ID: | 4EDA38AE.5030003@fuzzy.cz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
why the libraries loaded using local_preload_libraries need to be placed
in a different subdirectory than libraries loaded using
shared_preload_libraries?
And why it does not use dynamic_library_path but a hardcoded path
'$libdir/plugins'?
I do understand that leaving the users to load whatever libraries they
want is a bad idea, but when the library is loaded from postgresql.conf
it should be safe.
Therefore I'd expect / propose this behaviour:
1) libs loaded from shared_preload_libraries/local_preload_libraries
- any paths are allowed (relative and absolute)
- relative paths are resolved using dynamic_library_path if
specified, $libdir otherwise
- absolute paths are allowed, may load libraries from other locations
2) libs loaded using LOAD
- check that the library is loaded from dynamic_library_path (if
specified), $libdir otherwise
AFAIK this prevents '..' type attacks and makes it easier to install
extensions (shared libs are installed to $libdir, so if you need to load
a library using local_preload_libraries, you have to copy it manually).
Tomas
From | Date | Subject | |
---|---|---|---|
Next Message | Magnus Hagander | 2011-12-03 14:59:46 | Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64 |
Previous Message | NISHIYAMA Tomoaki | 2011-12-03 14:49:47 | Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64 |