summaryrefslogtreecommitdiff
path: root/external/firebird/sanitizer.patch
diff options
context:
space:
mode:
Diffstat (limited to 'external/firebird/sanitizer.patch')
-rw-r--r--external/firebird/sanitizer.patch23
1 files changed, 3 insertions, 20 deletions
diff --git a/external/firebird/sanitizer.patch b/external/firebird/sanitizer.patch
index e727d581e626..3707b5bf54af 100644
--- a/external/firebird/sanitizer.patch
+++ b/external/firebird/sanitizer.patch
@@ -52,29 +52,12 @@
--- src/common/os/posix/mod_loader.cpp
+++ src/common/os/posix/mod_loader.cpp
-@@ -88,7 +88,7 @@
+@@ -92,7 +92,7 @@
- ModuleLoader::Module* ModuleLoader::loadModule(const Firebird::PathName& modPath)
+ ModuleLoader::Module* ModuleLoader::loadModule(ISC_STATUS* status, const Firebird::PathName& modPath)
{
- void* module = dlopen(modPath.nullStr(), FB_RTLD_MODE);
+ void* module = dlopen(modPath.nullStr(), FB_RTLD_MODE | RTLD_GLOBAL);
if (module == NULL)
{
- #ifdef DEV_BUILD
---- src/jrd/met.epp
-+++ src/jrd/met.epp
-@@ -1486,10 +1486,11 @@
- USHORT offset = p[0] | (p[1] << 8);
- p += 2;
-
-- const Ods::Descriptor* odsDflDesc = (Ods::Descriptor*) p;
-- p = (UCHAR*) (odsDflDesc + 1);
-+ Ods::Descriptor odsDflDesc;
-+ memcpy(&odsDflDesc, p, sizeof (Ods::Descriptor));
-+ p = (UCHAR*) (((Ods::Descriptor*) p) + 1);
-
-- dsc desc = *odsDflDesc;
-+ dsc desc = odsDflDesc;
- desc.dsc_address = const_cast<UCHAR*>(p);
- EVL_make_value(tdbb, &desc, &format->fmt_defaults[offset], relation->rel_pool);
-
+ if (status)