* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
+#include <stdlib.h>
+
#include <libsyscommon/log.h>
#include <system/syscommon-plugin-common.h>
EXPORT
int syscommon_plugin_update_control_get_backend(int *backend_exists)
{
+ int ret = 0;
+
+ if (!backend_exists) {
+ _E("Invalid parameter: backend_exists is NULL");
+ return SYSCOMMON_UPDATE_CONTROL_ERROR_INVALID_PARAMETER;
+ }
+
if (funcs)
goto get_backend_success;
- int ret = syscommon_plugin_common_get_backend(
+ funcs = calloc(1, sizeof(*funcs));
+ if (!funcs) {
+ _E("Failed to allocate memory for funcs");
+ return SYSCOMMON_UPDATE_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
+ ret = syscommon_plugin_common_get_backend(
SYSCOMMON_PLUGIN_MODULE_UPDATE_CONTROL,
(void **)&funcs);
- if (ret < 0) {
- if ((ret == -ENOENT) && backend_exists) {
- _I("update-control backend was not found");
- *backend_exists = 0;
- return SYSCOMMON_UPDATE_CONTROL_ERROR_NONE;
- }
+ if (ret == -ENOENT) {
+ _I("update-control backend was not found");
+
+ free(funcs);
+ funcs = NULL;
+
+ *backend_exists = 0;
+ return SYSCOMMON_UPDATE_CONTROL_ERROR_NONE;
+ }
+
+ if (ret < 0) {
_E("Failed to get update-control backend: %d", ret);
+
+ free(funcs);
+ funcs = NULL;
+
return SYSCOMMON_UPDATE_CONTROL_ERROR_SYSTEM_ERROR;
}
_I("Success to get update-control backend: %d", ret);
get_backend_success:
- if (backend_exists)
- *backend_exists = 1;
+ *backend_exists = 1;
return SYSCOMMON_UPDATE_CONTROL_ERROR_NONE;
}
_E("Failed to put update-control backend: %d", ret);
return SYSCOMMON_UPDATE_CONTROL_ERROR_SYSTEM_ERROR;
}
- funcs = NULL;
_I("Success to put update-control backend: %d", ret);
+ free(funcs);
+ funcs = NULL;
+
return SYSCOMMON_UPDATE_CONTROL_ERROR_NONE;
}