return false;
}
+ // clear existing error
+ dlerror();
+
drm_oem_sapps_is_drm_file = reinterpret_cast <int (*)(const char*, int)>
(dlsym(pHandle, "drm_oem_sapps_is_drm_file"));
- pErrorMsg = dlerror();
- if ((pErrorMsg != NULL) || (drm_oem_sapps_is_drm_file == NULL)) {
- _E("dlopen failed : %s [%s]", source.c_str(), pErrorMsg);
+
+ if ((pErrorMsg = dlerror()) != NULL) {
+ _E("dlsym failed : %s [%s]", source.c_str(), pErrorMsg);
+ dlclose(pHandle);
+ return false;
+ }
+
+ if (drm_oem_sapps_is_drm_file == NULL) {
+ _E("drm_oem_sapps_is_drm_file is NULL : %s", source.c_str());
dlclose(pHandle);
return false;
}
return false;
}
+ // clear existing error
+ dlerror();
+
drm_oem_sapps_decrypt_package = reinterpret_cast <int (*)(const char*, int,
const char*, int)>
(dlsym(pHandle, "drm_oem_sapps_decrypt_package"));
- pErrorMsg = dlerror();
- if ((pErrorMsg != NULL) || (drm_oem_sapps_decrypt_package == NULL)) {
- _E("dlopen failed : %s [%s]", source.c_str(), pErrorMsg);
+
+ if ((pErrorMsg = dlerror()) != NULL) {
+ _E("dlsym failed : %s [%s]", source.c_str(), pErrorMsg);
+ dlclose(pHandle);
+ return false;
+ }
+
+ if (drm_oem_sapps_decrypt_package == NULL) {
+ _E("drm_oem_sapps_decrypt_package is NULL : %s", source.c_str());
dlclose(pHandle);
return false;
}