diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2003-05-16 02:19:16 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2003-05-16 02:19:16 +0800 |
commit | ca848e5756dfd0a983f19c6ea6e6a78ad01ed7ee (patch) | |
tree | 7c7894fee5a441aed66d51c3ec05d071767f2a4a /shell | |
parent | 1e478fe94bc167e450e494f0b8b3efa7ffef4998 (diff) | |
download | gsoc2013-evolution-ca848e5756dfd0a983f19c6ea6e6a78ad01ed7ee.tar.gz gsoc2013-evolution-ca848e5756dfd0a983f19c6ea6e6a78ad01ed7ee.tar.zst gsoc2013-evolution-ca848e5756dfd0a983f19c6ea6e6a78ad01ed7ee.zip |
Protect against the component name having slashes in it.
* e-shell.c (parse_default_uri): Protect against the component
name having slashes in it.
* e-shell-view.c (display_uri): Protect against invalid "default:"
URIs. [#43079]
svn path=/trunk/; revision=21194
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ChangeLog | 8 | ||||
-rw-r--r-- | shell/e-shell-view.c | 7 | ||||
-rw-r--r-- | shell/e-shell.c | 5 |
3 files changed, 19 insertions, 1 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index d48f6c08af..3025670980 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,11 @@ +2003-05-15 Ettore Perazzoli <ettore@ximian.com> + + * e-shell.c (parse_default_uri): Protect against the component + name having slashes in it. + + * e-shell-view.c (display_uri): Protect against invalid "default:" + URIs. [#43079] + 2003-05-15 Rodrigo Moya <rodrigo@ximian.com> * main.c: #ifdef'ed wombat killing code, depending on whether diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c index ccbcffa5ce..ba94aa0ed3 100644 --- a/shell/e-shell-view.c +++ b/shell/e-shell-view.c @@ -2448,7 +2448,7 @@ display_uri (EShellView *shell_view, View *view; gboolean retval; const char *view_info; - char *real_uri; + char *real_uri = NULL; char *allocated_uri = NULL; priv = shell_view->priv; @@ -2476,6 +2476,11 @@ display_uri (EShellView *shell_view, if (strncmp (uri, E_SHELL_DEFAULTURI_PREFIX, E_SHELL_DEFAULTURI_PREFIX_LEN) == 0) { allocated_uri = evolution_uri_for_default_uri (e_shell_view_get_shell (shell_view), uri); + if (allocated_uri == NULL) { + retval = FALSE; + goto end; + } + uri = allocated_uri; } diff --git a/shell/e-shell.c b/shell/e-shell.c index 8b081c2052..5dbf9f8666 100644 --- a/shell/e-shell.c +++ b/shell/e-shell.c @@ -2167,6 +2167,11 @@ parse_default_uri (EShell *shell, else component = g_strndup (component_start, p - component_start); + if (strchr (component, '/') != NULL) { + g_free (component); + return FALSE; + } + client = gconf_client_get_default (); config_path = g_strdup_printf ("/apps/evolution/shell/default_folders/%s_path", component); |