1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
From 09d56ba0eb9c0411b01c8c738e67f98fe69872f5 Mon Sep 17 00:00:00 2001
From: Evgeny Golov <evgeni@debian.org>
Date: Fri, 22 Jul 2016 09:32:56 +0200
Subject: Try libhpmud.so.0 after libhpmud.so
Closes: #600670
Patch-Name: try_libhpmud.so.0.patch
---
scan/sane/marvell.c | 10 +++++++---
scan/sane/soap.c | 9 ++++++---
scan/sane/soapht.c | 9 ++++++---
3 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/scan/sane/marvell.c b/scan/sane/marvell.c
index ad267a3..a069292 100644
--- a/scan/sane/marvell.c
+++ b/scan/sane/marvell.c
@@ -60,10 +60,14 @@ static int bb_load(struct marvell_session *ps, const char *so)
int stat=1;
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
- if ((ps->hpmud_handle = load_library("libhpmud.so")) == NULL)
+
+ if ((ps->hpmud_handle = dlopen("libhpmud.so", RTLD_LAZY|RTLD_GLOBAL)) == NULL)
{
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
- goto bugout;
+ if ((ps->hpmud_handle = dlopen("libhpmud.so.0", RTLD_LAZY|RTLD_GLOBAL)) == NULL)
+ {
+ BUG("unable to load restricted library: %s\n", dlerror());
+ goto bugout;
+ }
}
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
diff --git a/scan/sane/soap.c b/scan/sane/soap.c
index 07106fe..352db3d 100644
--- a/scan/sane/soap.c
+++ b/scan/sane/soap.c
@@ -68,10 +68,13 @@ static int bb_load(struct soap_session *ps, const char *so)
int stat=1;
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
- if ((ps->hpmud_handle = load_library("libhpmud.so")) == NULL)
+ if ((ps->hpmud_handle = dlopen("libhpmud.so", RTLD_LAZY|RTLD_GLOBAL)) == NULL)
{
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
- goto bugout;
+ if ((ps->hpmud_handle = dlopen("libhpmud.so.0", RTLD_LAZY|RTLD_GLOBAL)) == NULL)
+ {
+ BUG("unable to load restricted library: %s\n", dlerror());
+ goto bugout;
+ }
}
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
diff --git a/scan/sane/soapht.c b/scan/sane/soapht.c
index 269ab21..b554b3c 100644
--- a/scan/sane/soapht.c
+++ b/scan/sane/soapht.c
@@ -62,10 +62,13 @@ static int bb_load(struct soap_session *ps, const char *so)
int stat=1;
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
+ if ((ps->hpmud_handle = dlopen("libhpmud.so", RTLD_LAZY|RTLD_GLOBAL)) == NULL)
{
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
- goto bugout;
+ if ((ps->hpmud_handle = dlopen("libhpmud.so.0", RTLD_LAZY|RTLD_GLOBAL)) == NULL)
+ {
+ BUG("unable to load restricted library: %s\n", dlerror());
+ goto bugout;
+ }
}
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
|