From 4202e1d6f4b9d7fda70bfec61e88e6e3c77a597d Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 11 Apr 2014 07:24:57 +0200 Subject: Do not segfault just because an error has not been given MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/location-geoclue.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/location-geoclue.c b/src/location-geoclue.c index 5be651f..d420457 100644 --- a/src/location-geoclue.c +++ b/src/location-geoclue.c @@ -67,9 +67,13 @@ location_geoclue_start(location_geoclue_state_t *state) g_object_unref(master); if (client == NULL) { - g_printerr(_("Unable to obtain master client: %s\n"), - error->message); - g_error_free(error); + if (error != NULL) { + g_printerr(_("Unable to obtain master client: %s\n"), + error->message); + g_error_free(error); + } else { + g_printerr(_("Unable to obtain master client\n")); + } return -1; } @@ -78,9 +82,13 @@ location_geoclue_start(location_geoclue_state_t *state) 0, FALSE, GEOCLUE_RESOURCE_NETWORK, &error)) { - g_printerr(_("Can't set requirements for master: %s\n"), - error->message); - g_error_free(error); + if (error != NULL) { + g_printerr(_("Can't set requirements for master: %s\n"), + error->message); + g_error_free(error); + } else { + g_printerr(_("Can't set requirements for master\n")); + } g_object_unref(client); return -1; -- cgit v1.2.3-70-g09d2 From 5ad49f9e49c4aceb42fb1aa2c393b8585cc11b9e Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 11 Apr 2014 07:28:14 +0200 Subject: Try to use DISPLAY=:0 if not in X MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/location-geoclue.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/location-geoclue.c b/src/location-geoclue.c index d420457..5c027c7 100644 --- a/src/location-geoclue.c +++ b/src/location-geoclue.c @@ -60,6 +60,10 @@ location_geoclue_start(location_geoclue_state_t *state) state->position = geoclue_position_new(state->provider, state->provider_path); } else { + if (getenv("DISPLAY") == NULL || *getenv("DISPLAY") == '\0') { + /* TODO This (hack) should be removed when GeoClue has been patched. */ + putenv("DISPLAY=:0"); + } GError *error = NULL; GeoclueMaster *master = geoclue_master_get_default(); GeoclueMasterClient *client = geoclue_master_create_client(master, -- cgit v1.2.3-70-g09d2