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=6f42df1ed42331d115991bbb1937df15b160bdfc 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);