[librsvg] Don't do fallback for data: URIs
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] Don't do fallback for data: URIs
- Date: Sat, 28 Jan 2012 17:34:15 +0000 (UTC)
commit ad697bfd6c72835c0fe88dd65d0512ea596f3c97
Author: Christian Persch <chpe gnome org>
Date: Fri Jan 27 20:44:57 2012 +0100
Don't do fallback for data: URIs
When the scheme is "data", just treat it like that, and don't fall back
to trying file or gvfs. Also make sure to always set the error!
rsvg-io.c | 24 ++++++++++++++++--------
1 files changed, 16 insertions(+), 8 deletions(-)
---
diff --git a/rsvg-io.c b/rsvg-io.c
index 8376367..c0c609a 100644
--- a/rsvg-io.c
+++ b/rsvg-io.c
@@ -184,12 +184,14 @@ _rsvg_io_acquire_data (const char *href,
{
guint8 *data;
- if (!(href && *href))
+ if (!(href && *href)) {
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "Invalid URI");
return NULL;
+ }
- if (strncmp (href, "data:", 5) == 0 &&
- (data = rsvg_acquire_base64_data (href, NULL, len, NULL)))
- return data;
+ if (strncmp (href, "data:", 5) == 0)
+ return rsvg_acquire_base64_data (href, NULL, len, error);
if ((data = rsvg_acquire_file_data (href, base_uri, len, NULL)))
return data;
@@ -209,12 +211,18 @@ _rsvg_io_acquire_stream (const char *href,
guint8 *data;
gsize len;
- if (!(href && *href))
+ if (!(href && *href)) {
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "Invalid URI");
return NULL;
+ }
- if (strncmp (href, "data:", 5) == 0 &&
- (data = rsvg_acquire_base64_data (href, NULL, &len, NULL)))
- return g_memory_input_stream_new_from_data (data, len, (GDestroyNotify) g_free);
+ if (strncmp (href, "data:", 5) == 0) {
+ if (!(data = rsvg_acquire_base64_data (href, NULL, &len, error)))
+ return NULL;
+
+ return g_memory_input_stream_new_from_data (data, len, (GDestroyNotify) g_free);
+ }
if ((data = rsvg_acquire_file_data (href, base_uri, &len, NULL)))
return g_memory_input_stream_new_from_data (data, len, (GDestroyNotify) g_free);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]