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