From: José Bollo Date: Tue, 1 Oct 2019 09:10:28 +0000 (+0200) Subject: Improve detection of the bindings X-Git-Tag: 8.99.1~7 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-binder.git;a=commitdiff_plain;h=refs%2Fchanges%2F46%2F22546%2F1 Improve detection of the bindings The symbol 'afbBindingV3root' may be defined in shared libraries that are not bindings. Using it to detect bindings v3 can lead to false detection and errors. Bug-AGL: SPEC-2841 Signed-off-by: José Bollo Change-Id: Ib2bc77d95e3306e7b4a883136ce27c92f8524a8d --- diff --git a/src/afb-api-so-v3.c b/src/afb-api-so-v3.c index 230a93fc..bef27e2e 100644 --- a/src/afb-api-so-v3.c +++ b/src/afb-api-so-v3.c @@ -75,16 +75,16 @@ int afb_api_so_v3_add(const char *path, void *handle, struct afb_apiset *declare struct afb_api_v3 *api; struct afb_export *export; - /* retrieves the register function */ - a.root = dlsym(handle, afb_api_so_v3_root); + /* retrieves important exported symbols */ a.desc = dlsym(handle, afb_api_so_v3_desc); a.entry = dlsym(handle, afb_api_so_v3_entry); - if (!a.root && !a.desc && !a.entry) + if (!a.desc && !a.entry) return 0; INFO("binding [%s] looks like an AFB binding V3", path); /* basic checks */ + a.root = dlsym(handle, afb_api_so_v3_root); if (!a.root) { ERROR("binding [%s] incomplete symbol set: %s is missing", path, afb_api_so_v3_root);