gtk+ r21352 - in branches/gtk-2-12: . gtk
- From: matthiasc svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r21352 - in branches/gtk-2-12: . gtk
- Date: Fri, 12 Sep 2008 02:56:03 +0000 (UTC)
Author: matthiasc
Date: Fri Sep 12 02:56:03 2008
New Revision: 21352
URL: http://svn.gnome.org/viewvc/gtk+?rev=21352&view=rev
Log:
Bug 541645 â gtkfilechooserdefault segfaults when bookmark does not
contain ://
* gtk/gtkfilechooserdefault.c (_gtk_file_chooser_label_for_file):
Be more robust. Reported by Jelte van der Hoek
Modified:
branches/gtk-2-12/ChangeLog
branches/gtk-2-12/gtk/gtkfilechooserdefault.c
Modified: branches/gtk-2-12/gtk/gtkfilechooserdefault.c
==============================================================================
--- branches/gtk-2-12/gtk/gtkfilechooserdefault.c (original)
+++ branches/gtk-2-12/gtk/gtkfilechooserdefault.c Fri Sep 12 02:56:03 2008
@@ -1691,37 +1691,43 @@
gchar *host, *label;
start = strstr (uri, "://");
- start += 3;
- path = strchr (start, '/');
-
- if (path)
- end = path;
- else
+ if (start)
{
- end = uri + strlen (uri);
- path = "/";
- }
+ start += 3;
+ path = strchr (start, '/');
+ if (path)
+ end = path;
+ else
+ {
+ end = uri + strlen (uri);
+ path = "/";
+ }
- /* strip username */
- p = strchr (start, '@');
- if (p && p < end)
- {
- start = p + 1;
- }
-
- p = strchr (start, ':');
- if (p && p < end)
- end = p;
+ /* strip username */
+ p = strchr (start, '@');
+ if (p && p < end)
+ {
+ start = p + 1;
+ }
- host = g_strndup (start, end - start);
-
- /* Translators: the first string is a path and the second string
- * is a hostname. Nautilus and the panel contain the same string
- * to translate.
- */
- label = g_strdup_printf (_("%1$s on %2$s"), path, host);
+ p = strchr (start, ':');
+ if (p && p < end)
+ end = p;
+
+ host = g_strndup (start, end - start);
+
+ /* Translators: the first string is a path and the second string
+ * is a hostname. Nautilus and the panel contain the same string
+ * to translate.
+ */
+ label = g_strdup_printf (_("%1$s on %2$s"), path, host);
- g_free (host);
+ g_free (host);
+ }
+ else
+ {
+ label = g_strdup (uri);
+ }
return label;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]