Fixed memory corruption 75/51675/1 submit/tizen_mobile/20151112.052518
authorYoung-Ae Kang <youngae.kang@samsung.com>
Thu, 12 Nov 2015 03:09:57 +0000 (12:09 +0900)
committerYoung-Ae Kang <youngae.kang@samsung.com>
Thu, 12 Nov 2015 03:10:23 +0000 (12:10 +0900)
Change-Id: If3b5de5ac75adcd36f9ee8b9f21ff7f56123c346

packaging/liblbs-dbus.changes
packaging/liblbs-dbus.spec
server/src/lbs_dbus_server.c

index 184b16c..476b4ee 100644 (file)
@@ -1,12 +1,25 @@
+[Version] lbs-dbus_0.3.4
+[Date] 12 November 2015
+[Changes] 1.Fixed memory corruption
+         2. Sync Tizen 2.4
+[Developer] Young-Ae Kang <youngae.kang@samsung.com>
+================================================================================
+
+[Version] lbs-dbus_0.3.3
+[Date] 15 July 2015
+[Changes] Fxied a prevent defect.
+[Developer] Young-Ae Kang <youngae.kang@samsung.com>
+================================================================================
+
 [Version] lbs-dbus_0.3.2
-[date] 10 June 2015
+[Date] 10 June 2015
 [Title] Code sync with tizen_2.4
 [Developer] Young-Ae Kang <youngae.kang@samsung.com>
 
 ================================================================================
 
 [Version] lbs-dbus_0.1.10-1
-[date] 11 June 2013
+[Date] 11 June 2013
 [Title] add SECURE_LOG
 [Issue#] NA
 [Problem] NA
@@ -17,7 +30,7 @@
 ================================================================================
 
 [Version] lbs-dbus_0.1.9-1
-[date] 29 May 2013
+[Date] 29 May 2013
 [Title] to free XX_call_sync return value, don't free g_variant_builder.
 [Issue#] NA
 [Problem] NA
@@ -28,7 +41,7 @@
 ================================================================================
 
 [Version] lbs-dbus_0.1.8-1
-[date] 22 May 2013
+[Date] 22 May 2013
 [Title] lbs_object_get_XX to get gbus object, to fix PLM P130516-0557.
 [Issue#] NA
 [Problem] NA
@@ -39,7 +52,7 @@
 ================================================================================
 
 [Version] lbs-dbus_0.1.7-1
-[date] 13 May 2013
+[Date] 13 May 2013
 [Title] Change the DoCoMo location logs saving mechanism.
 [Issue#] NA
 [Problem] NA
@@ -50,7 +63,7 @@
 ================================================================================
 
 [Version] lbs-dbus_0.1.6-1
-[date] 7 May 2013
+[Date] 7 May 2013
 [Title] change g_variant from {ss} to {sv} for SUPL NI message
 [Issue#] NA
 [Problem] NA
@@ -61,7 +74,7 @@
 ================================================================================
 
 [Version] lbs-dbus_0.1.5-1
-[date] 2 May 2013
+[Date] 2 May 2013
 [Title] Add LBS agps library for SUPK NI
 [Issue#] NA
 [Problem] NA
@@ -72,7 +85,7 @@
 ================================================================================
 
 [Version] lbs-dbus_0.1.4-1
-[date] 26 Apr 2013
+[Date] 26 Apr 2013
 [Title] Change ProxyCall.
 [Issue#] NA
 [Problem] NA
@@ -83,7 +96,7 @@
 ================================================================================
 
 [Version] lbs-dbus_0.1.3-1
-[date] 1 Apr 2013
+[Date] 1 Apr 2013
 [Title] Add GDbus server side
 [Issue#] NA
 [Problem] NA
 ================================================================================
 
 [Version] lbs-dbus_0.1.2-1
-[date] 23 Mar 2013
+[Date] 23 Mar 2013
 [Title] Fix a crash when unsubscribing signals
 [Issue#] NA
 [Problem] NA
 ================================================================================
 
 [Version] lbs-dbus_0.1.1-1
-[date] 19 Mar 2013
+[Date] 19 Mar 2013
 [Title] Fix a crash when timeout
 [Issue#] NA
 [Problem] NA
index 8e3e30c..b7f362c 100644 (file)
@@ -1,6 +1,6 @@
 Name:          liblbs-dbus
 Summary:       DBus interface for Location Based Service
-Version:       0.3.2
+Version:       0.3.4
 Release:       1
 Group:         Location/Libraries
 License:       Apache-2.0
@@ -42,7 +42,7 @@ export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
 
 export CFLAGS+=" -Wno-unused-local-typedefs "
 #cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} 
-cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DBUILD_PKGTYPE=rpm -DLIBDIR=%{_libdir} -DINCLUDEDIR=%{_includedir}
+cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIBDIR=%{_libdir} -DINCLUDEDIR=%{_includedir}
 
 make %{?jobs:-j%jobs}
 
index 2e1b2b1..6769cb9 100644 (file)
@@ -248,6 +248,8 @@ on_manager_addreference(LbsManager *mgr,
                         gpointer                               user_data)
 {
        LBS_SERVER_LOGD("method: %d", method);
+       if(method < 0 || method >= LBS_SERVER_METHOD_SIZE) return FALSE;
+
        lbs_server_dbus_s *ctx = (lbs_server_dbus_s *)user_data;
        if (!ctx) {
                return FALSE;
@@ -624,15 +626,19 @@ static void on_bus_acquired(GDBusConnection *conn, const gchar *name, gpointer u
 
        /* create object for each interfaces*/
        path = g_strdup_printf("%s/%s", ctx->service_path, "SAMSUNG");
-       object = lbs_object_skeleton_new(path);
-       ctx->obj_skeleton = object;
-
-       if (NULL != path) {
-               LBS_SERVER_LOGD("object path [%s], obj_skeleton [%p]", path, ctx->obj_skeleton);
-               g_free(path);
+       if (path == NULL) {
+               LBS_SERVER_LOGE("path is NULL");
                path = NULL;
        }
 
+       object = lbs_object_skeleton_new(path);
+       g_free(path);
+       if (object == NULL) {
+               LBS_SERVER_LOGE("Can't create object. path: %s", path);
+               return;
+       }
+
+       ctx->obj_skeleton = object;
        lbs_dbus_setup_position_interface(object, ctx);
        lbs_dbus_setup_batch_interface(object, ctx);
        lbs_dbus_setup_satellite_interface(object, ctx);
@@ -680,33 +686,36 @@ static void on_bus_acquired(GDBusConnection *conn, const gchar *name, gpointer u
 
        /* register callback for each methods for H/W gps-geofence */
        LbsGpsGeofence *gps_geofence = NULL;
-       gps_geofence = lbs_object_get_gps_geofence(LBS_OBJECT(ctx->obj_skeleton));
-       g_return_if_fail(gps_geofence);
-       if (ctx->add_hw_fence_cb) {
-               ctx->add_hw_fence_h = g_signal_connect(gps_geofence,
-                                                      "handle-add-fence",
-                                                      G_CALLBACK(on_gps_geofence_addfence),
-                                                      ctx); /* user_data */
-       }
-       if (ctx->delete_hw_fence_cb) {
-               ctx->delete_hw_fence_h = g_signal_connect(gps_geofence,
-                                                         "handle-delete-fence",
-                                                         G_CALLBACK(on_gps_geofence_deletefence),
-                                                         ctx); /* user_data */
-       }
-       if (ctx->pause_hw_fence_cb) {
-               ctx->pause_hw_fence_h = g_signal_connect(gps_geofence,
-                                                        "handle-pause-fence",
-                                                        G_CALLBACK(on_gps_geofence_pausefence),
-                                                        ctx); /* user_data */
-       }
-       if (ctx->resume_hw_fence_cb) {
-               ctx->resume_hw_fence_h = g_signal_connect(gps_geofence,
-                                                         "handle-resume-fence",
-                                                         G_CALLBACK(on_gps_geofence_resumefence),
-                                                         ctx); /* user_data */
+       if (ctx->obj_skeleton) {
+               gps_geofence = lbs_object_get_gps_geofence(LBS_OBJECT(ctx->obj_skeleton));
+               if (gps_geofence) {
+                       if (ctx->add_hw_fence_cb) {
+                               ctx->add_hw_fence_h = g_signal_connect(gps_geofence,
+                                                                      "handle-add-fence",
+                                                                      G_CALLBACK(on_gps_geofence_addfence),
+                                                                      ctx); /* user_data */
+                       }
+                       if (ctx->delete_hw_fence_cb) {
+                               ctx->delete_hw_fence_h = g_signal_connect(gps_geofence,
+                                                                         "handle-delete-fence",
+                                                                         G_CALLBACK(on_gps_geofence_deletefence),
+                                                                         ctx); /* user_data */
+                       }
+                       if (ctx->pause_hw_fence_cb) {
+                               ctx->pause_hw_fence_h = g_signal_connect(gps_geofence,
+                                                                        "handle-pause-fence",
+                                                                        G_CALLBACK(on_gps_geofence_pausefence),
+                                                                        ctx); /* user_data */
+                       }
+                       if (ctx->resume_hw_fence_cb) {
+                               ctx->resume_hw_fence_h = g_signal_connect(gps_geofence,
+                                                                         "handle-resume-fence",
+                                                                         G_CALLBACK(on_gps_geofence_resumefence),
+                                                                         ctx); /* user_data */
+                       }
+                       g_object_unref(gps_geofence);
+               }
        }
-       g_object_unref(gps_geofence);
 
        ctx->owner_changed_id = g_dbus_connection_signal_subscribe(conn,
                                                                   "org.freedesktop.DBus",