From: Young-Ae Kang Date: Thu, 12 Nov 2015 03:09:57 +0000 (+0900) Subject: Fixed memory corruption X-Git-Tag: submit/tizen_mobile/20151112.052518^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F75%2F51675%2F1;p=platform%2Fcore%2Flocation%2Flbs-dbus.git Fixed memory corruption Change-Id: If3b5de5ac75adcd36f9ee8b9f21ff7f56123c346 --- diff --git a/packaging/liblbs-dbus.changes b/packaging/liblbs-dbus.changes index 184b16c..476b4ee 100644 --- a/packaging/liblbs-dbus.changes +++ b/packaging/liblbs-dbus.changes @@ -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 +================================================================================ + +[Version] lbs-dbus_0.3.3 +[Date] 15 July 2015 +[Changes] Fxied a prevent defect. +[Developer] Young-Ae Kang +================================================================================ + [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 ================================================================================ [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 @@ -94,7 +107,7 @@ ================================================================================ [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 @@ -105,7 +118,7 @@ ================================================================================ [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 diff --git a/packaging/liblbs-dbus.spec b/packaging/liblbs-dbus.spec index 8e3e30c..b7f362c 100644 --- a/packaging/liblbs-dbus.spec +++ b/packaging/liblbs-dbus.spec @@ -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} diff --git a/server/src/lbs_dbus_server.c b/server/src/lbs_dbus_server.c index 2e1b2b1..6769cb9 100644 --- a/server/src/lbs_dbus_server.c +++ b/server/src/lbs_dbus_server.c @@ -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",