summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVenkatesha Sarpangala <sarpangala.v@samsung.com>2017-03-19 14:43:01 +0530
committerJiwoong Im <jiwoong.im@samsung.com>2017-03-20 03:16:22 -0700
commitf87e8e4897beed78f891709aadd302b033e0562b (patch)
treeb278e42abb429e141f2b417c1e0eb70cd5879ee1
parent50da8fdeb3309d24009750a971fe62aafa4a5dbe (diff)
downloadalarm-manager-f87e8e4897beed78f891709aadd302b033e0562b.tar.gz
alarm-manager-f87e8e4897beed78f891709aadd302b033e0562b.tar.bz2
alarm-manager-f87e8e4897beed78f891709aadd302b033e0562b.zip
Fix crash issue
- API caller crashed due to null pointer dereference - Fix by adding Null check before dereference Change-Id: I885e4b2cb7b8c8d79656e95abc5a9dcfa1d1d7f6 Signed-off-by: Venkatesha Sarpangala <sarpangala.v@samsung.com> (cherry picked from commit 51d21ea2c568041a91a003bebc0af7dc518e8ec7)
-rw-r--r--src/alarm-lib-stub.c168
1 files changed, 104 insertions, 64 deletions
diff --git a/src/alarm-lib-stub.c b/src/alarm-lib-stub.c
index 0b983db..089a1b6 100644
--- a/src/alarm-lib-stub.c
+++ b/src/alarm-lib-stub.c
@@ -103,14 +103,16 @@ bool _send_alarm_create_noti(alarm_context_t context, alarm_info_t *alarm_info,
/* error_code should be set */
ALARM_MGR_EXCEPTION_PRINT(
"alarm_manager_call_alarm_create_noti_sync()failed. alarm_id[%d], return_code[%d].", alarm_id, return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -168,14 +170,16 @@ bool _send_alarm_create_appsvc(alarm_context_t context, alarm_info_t *alarm_info
/* error_code should be set */
ALARM_MGR_EXCEPTION_PRINT(
"alarm_manager_call_alarm_create_appsvc_sync()failed. alarm_id[%d], return_code[%d].", alarm_id, return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -229,14 +233,16 @@ bool _send_alarm_create(alarm_context_t context, alarm_info_t *alarm_info,
/* error_code should be set */
ALARM_MGR_EXCEPTION_PRINT(
"alarm_manager_call_alarm_create_sync()failed. alarm_id[%d], return_code[%d]", alarm_id, return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -269,14 +275,16 @@ bool _send_alarm_create_periodic(alarm_context_t context, int interval, int is_r
alarm_id, &return_code, NULL, &error)) {
ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_create_periodic_sync()failed. alarm_id[%d], return_code[%d]",
alarm_id, return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -301,14 +309,16 @@ bundle *_send_alarm_get_appsvc_info(alarm_context_t context, alarm_id_t alarm_id
/* g_dbus_proxy_call_sync error */
/*error_code should be set */
ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_get_appsvc_info_sync() failed. alarm_id[%d], return_code[%d].", alarm_id, return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
if (b_data)
g_free(b_data);
@@ -345,14 +355,16 @@ notification_h _send_alarm_get_noti_info(alarm_context_t context, alarm_id_t ala
/* g_dbus_proxy_call_sync error */
/*error_code should be set */
ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_get_appsvc_info_sync() failed. alarm_id[%d], return_code[%d].", alarm_id, return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
if (noti_data)
g_free(noti_data);
@@ -397,14 +409,16 @@ bool _send_alarm_set_rtc_time(alarm_context_t context, alarm_date_t *time, int *
/* g_dbus_proxy_call_sync error */
/*error_code should be set */
ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_set_rtc_time() failed. return_code[%d]", return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -428,14 +442,16 @@ bool _send_alarm_delete(alarm_context_t context, alarm_id_t alarm_id, int *error
/* g_dbus_proxy_call_sync error */
/*error_code should be set */
ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_delete_sync() failed. alarm_id[%d], return_code[%d]", alarm_id, return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -459,14 +475,16 @@ bool _send_alarm_delete_all(alarm_context_t context, int *error_code)
/* g_dbus_proxy_call_sync error */
/*error_code should be set */
ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_delete_all_sync() failed. return_code[%d]", return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -495,14 +513,16 @@ bool _send_alarm_get_list_of_ids(alarm_context_t context, int maxnum_of_ids,
/*error_code should be set */
ALARM_MGR_EXCEPTION_PRINT(
"alarm_manager_call_alarm_get_list_of_ids_sync() failed by dbus. alarm_id[%d], return_code[%d]\n", alarm_id, return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -537,17 +557,19 @@ bool _send_alarm_get_number_of_ids(alarm_context_t context, int *num_of_ids,
/* g_dbus_proxy_call_sync error */
/* error_code should be set */
ALARM_MGR_EXCEPTION_PRINT(
- "alarm_manager_call_alarm_get_number_of_ids_sync() failed by dbus. return_code[%d], return_code[%s].",
- return_code, error->message);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ "alarm_manager_call_alarm_get_number_of_ids_sync() failed by dbus. return_code[%d]",
+ return_code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -579,14 +601,16 @@ bool _send_alarm_get_info(alarm_context_t context, alarm_id_t alarm_id,
/* error_code should be set */
ALARM_MGR_EXCEPTION_PRINT(
"alarm_manager_call_alarm_get_info_sync() failed by dbus. alarm_id[%d], return_code[%d]\n", alarm_id, return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -612,14 +636,16 @@ bool _send_alarm_get_next_duetime(alarm_context_t context,
/*error_code should be set */
ALARM_MGR_EXCEPTION_PRINT(
"alarm_manager_call_alarm_get_next_duetime_sync() failed by dbus. alarm_id[%d], return_code[%d]\n", alarm_id, return_code);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -640,15 +666,17 @@ bool _send_alarm_get_all_info(alarm_context_t context, char ** db_path, int *err
if (!alarm_manager_call_alarm_get_all_info_sync((AlarmManager*)context.proxy, db_path, &return_code, NULL, &error)) {
/*g_dbus_proxy_call_sync error */
/*error_code should be set */
- ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_get_all_info_sync() failed by dbus. return_code[%d][%s]", return_code, error->message);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_get_all_info_sync() failed by dbus. return_code[%d]", return_code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -698,8 +726,10 @@ static void _alarm_set_time_cb(GObject *source_object, GAsyncResult *res,
if (!alarm_manager_call_alarm_set_time_finish((AlarmManager *)func_data->proxy,
(gint *)&return_code,
res, &error)) {
- ALARM_MGR_EXCEPTION_PRINT("dbus error message: %s", error->message);
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("dbus error message: %s", error->message);
+ g_error_free(error);
+ }
return_code = ERR_ALARM_SYSTEM_FAIL;
}
@@ -734,15 +764,17 @@ bool _send_alarm_set_time_with_propagation_delay(alarm_context_t context, unsign
if (!alarm_manager_call_alarm_set_time_with_propagation_delay_sync((AlarmManager*)context.proxy, new_sec, new_nsec, req_sec, req_nsec, &return_code, NULL, &error)) {
/*g_dbus_proxy_call_sync error */
/*error_code should be set */
- ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_set_time_with_propagation_delay_sync() failed by dbus. return_code[%d][%s]", return_code, error->message);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_set_time_with_propagation_delay_sync() failed by dbus. return_code[%d]", return_code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -765,8 +797,10 @@ static void _alarm_set_time_with_delay_cb(GObject *source_object, GAsyncResult *
if (!alarm_manager_call_alarm_set_time_with_propagation_delay_finish((AlarmManager *)func_data->proxy,
(gint *)&return_code,
res, &error)) {
- ALARM_MGR_EXCEPTION_PRINT("dbus error message: %s", error->message);
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("dbus error message: %s", error->message);
+ g_error_free(error);
+ }
return_code = ERR_ALARM_SYSTEM_FAIL;
}
@@ -802,15 +836,17 @@ bool _send_alarm_set_timezone(alarm_context_t context, char *tzpath_str, int *er
if (!alarm_manager_call_alarm_set_timezone_sync((AlarmManager*)context.proxy, tzpath_str, &return_code, NULL, &error)) {
/*g_dbus_proxy_call_sync error */
/*error_code should be set */
- ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_set_timezone_sync() failed by dbus. return_code[%d][%s]", return_code, error->message);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_set_timezone_sync() failed by dbus. return_code[%d]", return_code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -831,15 +867,17 @@ bool _send_alarm_set_global(alarm_context_t context, const alarm_id_t alarm_id,
if (!alarm_manager_call_alarm_set_global_sync((AlarmManager *)context.proxy, alarm_id, global, &return_code, NULL, &error)) {
/*g_dbus_proxy_call_sync error */
/*error_code should be set */
- ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_set_global_sync() failed by dbus. return_code[%d][%s]", return_code, error->message);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_set_global_sync() failed by dbus. return_code[%d]", return_code);
if (error_code) {
- if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ if (error && error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}
@@ -861,15 +899,17 @@ bool _send_alarm_get_global(alarm_context_t context, const alarm_id_t alarm_id,
if (!alarm_manager_call_alarm_get_global_sync((AlarmManager *)context.proxy, alarm_id, (gboolean *)&_global, &return_code, NULL, &error)) {
/*g_dbus_proxy_call_sync error */
/*error_code should be set */
- ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_get_global_sync() failed by dbus. return_code[%d][%s]", return_code, error->message);
- ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ ALARM_MGR_EXCEPTION_PRINT("alarm_manager_call_alarm_get_global_sync() failed by dbus. return_code[%d]", return_code);
if (error_code) {
if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
*error_code = ERR_ALARM_NO_PERMISSION;
else
*error_code = ERR_ALARM_SYSTEM_FAIL;
}
- g_error_free(error);
+ if (error) {
+ ALARM_MGR_EXCEPTION_PRINT("error->message is %s(%d)", error->message, error->code);
+ g_error_free(error);
+ }
return false;
}