Add dbus conf file & Fix daemon crash issue 95/53595/2
authorWootak Jung <wootak.jung@samsung.com>
Tue, 8 Dec 2015 05:02:25 +0000 (14:02 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Tue, 8 Dec 2015 05:04:14 +0000 (21:04 -0800)
- uncorrect dereferencing to p_cynara

Change-Id: I67c5067290f69b7c480d41a26ea01903c8d007a9

include/ps_common.h
packaging/tel-plugin-packetservice.spec
packaging/tel-plugin-ps.conf [new file with mode: 0644]
src/ps_context.c
src/ps_main.c
src/ps_master.c
src/ps_modem.c

index 18b7f46..aa84a55 100644 (file)
 #define PS_CDMA_DUMMY_PROFILE_IDX 0
 #define PS_CDMA_DUMMY_PROFILE_PLMN "00000"
 
+/*
+ * PS plugin Private information
+ */
+typedef struct {
+       GDBusConnection *conn; /* DBUS connection */
+       guint bus_id; /* Packet service BUS ID */
+
+       /* Parent plug-in */
+       TcorePlugin *p;
+
+       /* List of masters */
+       GSList *master;
+       cynara *p_cynara;
+} PsPrivInfo;
+
 typedef enum {
        PS_SUBS_PRIMARY,
        PS_SUBS_SECONDARY,
index bad5679..8cfa804 100644 (file)
@@ -1,6 +1,6 @@
 %define major 0
 %define minor 3
-%define patchlevel 15
+%define patchlevel 16
 
 Name:           tel-plugin-packetservice
 Version:        %{major}.%{minor}.%{patchlevel}
@@ -9,6 +9,7 @@ License:        Apache-2.0
 Summary:        Telephony Packet Service library
 Group:          System/Libraries
 Source0:        tel-plugin-packetservice-%{version}.tar.gz
+Source1:        tel-plugin-ps.conf
 BuildRequires:  cmake
 BuildRequires:  python
 BuildRequires:  python-xml
@@ -108,6 +109,8 @@ fi
 %install
 %make_install
 mkdir -p %{buildroot}%{_datadir}/license
+mkdir -p %{buildroot}/etc/dbus-1/system.d/
+cp %{SOURCE1} %{buildroot}/etc/dbus-1/system.d/tel-plugin-ps.conf
 
 %files
 %manifest tel-plugin-packetservice.manifest
@@ -121,3 +124,4 @@ mkdir -p %{buildroot}%{_datadir}/license
 %{_sysconfdir}/opt/upgrade/*
 %{_libdir}/telephony/plugins/ps-plugin*
 %{_datadir}/license/tel-plugin-packetservice
+/etc/dbus-1/system.d/tel-plugin-ps.conf
diff --git a/packaging/tel-plugin-ps.conf b/packaging/tel-plugin-ps.conf
new file mode 100644 (file)
index 0000000..6c36640
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+        "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+        <policy user="root">
+                <allow own="com.tcore.ps"/>
+                <allow send_destination="com.tcore.ps"/>
+                <allow receive_sender="com.tcore.ps"/>
+        </policy>
+
+        <policy context="default">
+                <allow send_destination="com.tcore.ps"/>
+                <allow receive_sender="com.tcore.ps"/>
+        </policy>
+</busconfig>
index aec313c..9d46758 100644 (file)
@@ -2700,7 +2700,8 @@ static gboolean on_context_get_properties(PacketServiceContext *obj_context,
        GVariantBuilder property;
        ps_context_t *pscontext = user_data;
        TcorePlugin *p = (pscontext) ? pscontext->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PUBLIC, "r"))
                return TRUE;
@@ -2719,7 +2720,8 @@ static gboolean on_context_get_profile(PacketServiceContext *obj_context,
        GVariantBuilder profile;
        ps_context_t *pscontext = user_data;
        TcorePlugin *p = (pscontext) ? pscontext->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PUBLIC, "r"))
                return TRUE;
@@ -2748,7 +2750,8 @@ static gboolean on_context_handle_activate(PacketServiceContext *obj_context,
 
        ps_context_t *pscontext = user_data;
        TcorePlugin *p = (pscontext) ? pscontext->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PRIVATE, "w"))
                return TRUE;
@@ -2879,7 +2882,8 @@ static gboolean on_context_handle_deactiavte(PacketServiceContext *obj_context,
        int context_state = 0;
        ps_context_t *pscontext = user_data;
        TcorePlugin *p = (pscontext) ? pscontext->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PRIVATE, "w"))
                return TRUE;
@@ -2938,7 +2942,8 @@ static gboolean on_context_set_default_connection(PacketServiceContext *obj_cont
        gpointer cur_default_ctx = NULL;
        ps_context_t *pscontext = user_data;
        TcorePlugin *p = (pscontext) ? pscontext->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
        CoreObject *co_network;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PROFILE, "w"))
@@ -3026,7 +3031,8 @@ static gboolean on_context_modify_profile(PacketServiceContext *obj_context,
        int context_state = 0;
        ps_context_t *context = user_data;
        TcorePlugin *p = (context) ? context->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
        CoreObject *co_network = _ps_service_ref_co_network(_ps_context_ref_service(context));
        GHashTable *profile_property = NULL;
 
@@ -3078,7 +3084,8 @@ static gboolean on_context_remove_profile(PacketServiceContext *obj_context,
        ps_service_t *service = _ps_context_ref_service(context);
        CoreObject *co_network = _ps_service_ref_co_network(service);
        TcorePlugin *p = (context) ? context->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PROFILE, "w"))
                return TRUE;
index 8acb2cd..04cf18d 100644 (file)
 #include "ps_main.h"
 #include <ps_common.h>
 
-/*
- * PS plugin Private information
- */
-typedef struct {
-       GDBusConnection *conn; /* DBUS connection */
-       guint bus_id; /* Packet service BUS ID */
-
-       /* Parent plug-in */
-       TcorePlugin *p;
-
-       /* List of masters */
-       GSList *master;
-       cynara *p_cynara;
-} PsPrivInfo;
-
 static void __packet_service_cleanup(PsPrivInfo *priv_info)
 {
        /* Sanity Check */
index 7ffdf1f..be19584 100644 (file)
@@ -580,7 +580,8 @@ static gboolean on_master_get_modems(PacketServiceMaster *obj_master,
        gpointer key, value;
        ps_master_t *master = user_data;
        TcorePlugin *p = (master) ? master->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PUBLIC, "r"))
                return TRUE;
index d6380cc..0926a61 100644 (file)
@@ -1038,7 +1038,8 @@ static gboolean on_modem_get_properties(PacketServiceModem *obj_modem,
        GVariantBuilder properties;
        ps_modem_t *modem = user_data;
        TcorePlugin *p = (modem) ? modem->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PUBLIC, "r"))
                return TRUE;
@@ -1062,7 +1063,8 @@ static gboolean on_modem_get_services(PacketServiceModem *obj_modem,
        ps_modem_t *modem = user_data;
        CoreObject *co_modem = _ps_modem_ref_co_modem(modem);
        TcorePlugin *p = (modem) ? modem->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PUBLIC, "r"))
                return TRUE;
@@ -1106,7 +1108,8 @@ static gboolean on_modem_go_dormant_all(PacketServiceModem *obj_modem,
        gpointer key, value;
        ps_modem_t *modem = user_data;
        TcorePlugin *p = (modem) ? modem->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PRIVATE, "w"))
                return TRUE;
@@ -1141,7 +1144,8 @@ static gboolean on_modem_get_profile_list(PacketServiceModem *obj_modem,
        ps_modem_t *modem = user_data;
        CoreObject *co_modem = _ps_modem_ref_co_modem(modem);
        TcorePlugin *p = (modem) ? modem->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PUBLIC, "r"))
                return TRUE;
@@ -1206,7 +1210,8 @@ static gboolean on_modem_add_profile(PacketServiceModem *obj_modem,
        CoreObject *co_modem = _ps_modem_ref_co_modem(modem);
        GHashTable *profile_property = NULL;
        TcorePlugin *p = (modem) ? modem->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PROFILE, "w"))
                return TRUE;
@@ -1314,7 +1319,8 @@ static gboolean on_modem_reset_profile(PacketServiceModem *obj_modem,
        CoreObject *co_ps;
        int state;
        TcorePlugin *p = (modem) ? modem->plg : NULL;
-       cynara *p_cynara = tcore_plugin_ref_user_data(p);
+       PsPrivInfo *priv_info = tcore_plugin_ref_user_data(p);
+       cynara *p_cynara = (priv_info) ? priv_info->p_cynara : NULL;
 
        if (!ps_util_check_access_control(p_cynara, invocation, AC_PS_PROFILE, "w"))
                return TRUE;