[libshumate] network-tile-source: Throw error if URL is invalid



commit 5edf9c0a3bc358acc2061c01ffc268b4b1c67b92
Author: James Westman <james jwestman net>
Date:   Fri Mar 26 18:00:29 2021 -0500

    network-tile-source: Throw error if URL is invalid

 shumate/shumate-network-tile-source.c | 8 ++++++++
 shumate/shumate-network-tile-source.h | 1 +
 2 files changed, 9 insertions(+)
---
diff --git a/shumate/shumate-network-tile-source.c b/shumate/shumate-network-tile-source.c
index 5f78366..3637bd4 100644
--- a/shumate/shumate-network-tile-source.c
+++ b/shumate/shumate-network-tile-source.c
@@ -873,6 +873,14 @@ on_file_cache_get_tile (GObject *source_object, GAsyncResult *res, gpointer user
     data->cached_data = g_bytes_ref (bytes);
   data->msg = soup_message_new (SOUP_METHOD_GET, uri);
 
+  if (data->msg == NULL)
+    {
+      g_task_return_new_error (task, SHUMATE_NETWORK_SOURCE_ERROR,
+                               SHUMATE_NETWORK_SOURCE_ERROR_MALFORMED_URL,
+                               "The URL %s is not valid", uri);
+      return;
+    }
+
   if (etag)
     {
       g_autofree char *date = get_modified_time_string (data->tile);
diff --git a/shumate/shumate-network-tile-source.h b/shumate/shumate-network-tile-source.h
index f9eb0cf..f8c93b4 100644
--- a/shumate/shumate-network-tile-source.h
+++ b/shumate/shumate-network-tile-source.h
@@ -53,6 +53,7 @@ typedef enum {
   SHUMATE_NETWORK_SOURCE_ERROR_FAILED,
   SHUMATE_NETWORK_SOURCE_ERROR_BAD_RESPONSE,
   SHUMATE_NETWORK_SOURCE_ERROR_COULD_NOT_CONNECT,
+  SHUMATE_NETWORK_SOURCE_ERROR_MALFORMED_URL,
   SHUMATE_NETWORK_SOURCE_ERROR_OFFLINE,
 } ShumateNetworkSourceError;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]