17 lines
762 B
Diff
17 lines
762 B
Diff
|
diff -u -r ../lighttpd-1.4.39/src/plugin.c ./src/plugin.c
|
||
|
--- ../lighttpd-1.4.39/src/plugin.c 2015-11-22 13:59:02.000000000 -0500
|
||
|
+++ ./src/plugin.c 2016-01-19 17:43:51.306199574 -0500
|
||
|
@@ -259,7 +259,11 @@
|
||
|
#else
|
||
|
*(void **)(&init) = dlsym(p->lib, srv->tmp_buf->ptr);
|
||
|
#endif
|
||
|
- if ((error = dlerror()) != NULL) {
|
||
|
+ /* Do not call dlerror() when dlsym() has found a handle, since there may have
|
||
|
+ been a (recoverable) error during loading of the shared library. This seems
|
||
|
+ to happen on (some?) cyanogenmod devices trying to dlopen("libvendorconn.so")
|
||
|
+ from NetdClient.cpp and failing due to no such file. */
|
||
|
+ if (init == NULL && (error = dlerror()) != NULL) {
|
||
|
log_error_write(srv, __FILE__, __LINE__, "s", error);
|
||
|
|
||
|
plugin_free(p);
|