After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 564327 - Crash on ctrl-clicking URLs containing an invalid URL escape sequence
Crash on ctrl-clicking URLs containing an invalid URL escape sequence
Status: RESOLVED DUPLICATE of bug 546256
Product: gvfs
Classification: Core
Component: general
1.0.x
Other Linux
: Normal normal
: ---
Assigned To: gvfs-maint
gvfs-maint
Depends on:
Blocks:
 
 
Reported: 2008-12-12 22:29 UTC by Ricky Zhou
Modified: 2008-12-13 18:28 UTC
See Also:
GNOME target: ---
GNOME version: 2.23/2.24



Description Ricky Zhou 2008-12-12 22:29:48 UTC
I am seeing the following crash when I try to ctrl-click on a URL with an invalid escape sequence in gnome-terminal (for example, http://a/% or http://site.com/%2).

To reproduce, type the URL http://a/% in a terminal and ctrl-click it.  

Hope this helps, let me know if I can provide any more information.

crash.gnome.org was 503ing when this happened, so I have included the backtrace below:

Distribution: Fedora release 10 (Cambridge)
Gnome Release: 2.24.2 2008-11-25 (Red Hat, Inc)
BugBuddy Version: 2.24.2

System: Linux 2.6.27.7-134.fc10.i686.PAE #1 SMP Mon Dec 1 22:30:53 EST 2008 i686
X Vendor: The X.Org Foundation
X Vendor Release: 10503000
Selinux: Permissive
Accessibility: Disabled
GTK+ Theme: Nodoka
Icon Theme: Fedora

Memory status: size: 91365376 vsize: 91365376 resident: 20557824 share: 12685312 rss: 20557824 rss_rlim: 18446744073709551615
CPU usage: start_time: 1229120302 rtime: 216 utime: 176 stime: 40 cutime:1794 cstime: 552 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/bin/gnome-terminal'

[Thread debugging using libthread_db enabled]
[New Thread 0xb7fd0760 (LWP 424)]
[New Thread 0xb5387b90 (LWP 428)]
0x00110424 in __kernel_vsyscall ()

Thread 1 (Thread 0xb7fd0760 (LWP 424))

  • #0 __kernel_vsyscall
  • #1 waitpid
    from /lib/libpthread.so.0
  • #2 IA__g_spawn_sync
    at gspawn.c line 382
  • #3 IA__g_spawn_command_line_sync
    at gspawn.c line 694
  • #4 ??
    from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
  • #5 ??
    from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
  • #6 ??
    from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
  • #7 <signal handler called>
  • #8 g_mount_spec_canonicalize_path
    from /usr/lib/libgvfscommon.so.0
  • #9 ??
    from /usr/lib/gio/modules/libgvfsdbus.so
  • #10 ??
    from /usr/lib/gio/modules/libgvfsdbus.so
  • #11 IA__g_vfs_get_file_for_uri
    at gvfs.c line 123
  • #12 IA__g_file_new_for_uri
    at gfile.c line 4863
  • #13 IA__g_app_info_launch_default_for_uri
    at gappinfo.c line 557
  • #14 IA__gtk_show_uri
    at gtkshow.c line 73
  • #15 open_url
    at terminal-util.c line 125
  • #16 terminal_util_open_url
    at terminal-util.c line 239
  • #17 screen_match_clicked_cb
    at terminal-window.c line 1214
  • #18 _terminal_marshal_BOOLEAN__STRING_INT_UINT
    at terminal-marshal.c line 94
  • #19 IA__g_closure_invoke
    at gclosure.c line 767
  • #20 signal_emit_unlocked_R
    at gsignal.c line 3244
  • #21 IA__g_signal_emit_valist
    at gsignal.c line 2987
  • #22 IA__g_signal_emit
    at gsignal.c line 3034
  • #23 terminal_screen_button_press
    at terminal-screen.c line 1488
  • #24 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #25 g_type_class_meta_marshal
    at gclosure.c line 878
  • #26 IA__g_closure_invoke
    at gclosure.c line 767
  • #27 signal_emit_unlocked_R
    at gsignal.c line 3282
  • #28 IA__g_signal_emit_valist
    at gsignal.c line 2987
  • #29 IA__g_signal_emit
    at gsignal.c line 3034
  • #30 gtk_widget_event_internal
    at gtkwidget.c line 4745
  • #31 IA__gtk_propagate_event
    at gtkmain.c line 2391
  • #32 IA__gtk_main_do_event
    at gtkmain.c line 1581
  • #33 gdk_event_dispatch
    at gdkevents-x11.c line 2365
  • #34 g_main_dispatch
    at gmain.c line 2144
  • #35 IA__g_main_context_dispatch
    at gmain.c line 2697
  • #36 g_main_context_iterate
    at gmain.c line 2778
  • #37 IA__g_main_loop_run
    at gmain.c line 2986
  • #38 IA__gtk_main
    at gtkmain.c line 1200
  • #39 main
    at terminal.c line 1252


----------- .xsession-errors ---------------------
(gnome-terminal:32147): Vte-WARNING **: No handler for control sequence `device-control-string' defined.
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
ICEDTEAPLUGIN_DEBUG = (null)
Initializing JVM...
IcedTeaPlugin.cc:1647: Error: liveconnect
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
OMF category 'System|Configuration|Configuration Tools' not recognised, ignoring.
OMF category 'System|Configuration|Configuration Tools' not recognised, ignoring.
OMF category 'System|Configuration|Configuration Tools' not recognised, ignoring.
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
Cannot access memory at address 0x27
Cannot access memory at address 0x27
--------------------------------------------------
Comment 1 Ricky Zhou 2008-12-12 22:38:37 UTC
I'm sorry, looking at the backtrace one more time, I think it might have been more appropriate to file it under gvfs instead.  Sorry for the noise.
Comment 2 Ricky Zhou 2008-12-12 22:50:48 UTC
Now that I know it's in gvfs, here's the backtrace with debugging symbols for gvfs installed:

Distribution: Fedora release 10 (Cambridge)
Gnome Release: 2.24.2 2008-11-25 (Red Hat, Inc)
BugBuddy Version: 2.24.2

System: Linux 2.6.27.7-134.fc10.i686.PAE #1 SMP Mon Dec 1 22:30:53 EST 2008 i686
X Vendor: The X.Org Foundation
X Vendor Release: 10503000
Selinux: Permissive
Accessibility: Disabled
GTK+ Theme: Nodoka
Icon Theme: Fedora

Memory status: size: 64073728 vsize: 64073728 resident: 20131840 share: 11563008 rss: 20131840 rss_rlim: 18446744073709551615
CPU usage: start_time: 1229120856 rtime: 1151 utime: 953 stime: 198 cutime:104 cstime: 51 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/bin/gnome-terminal'

[Thread debugging using libthread_db enabled]
[New Thread 0xb7f6e760 (LWP 1137)]
[New Thread 0xb3b0fb90 (LWP 1143)]
0x00110424 in __kernel_vsyscall ()

Thread 1 (Thread 0xb7f6e760 (LWP 1137))

  • #0 __kernel_vsyscall
  • #1 waitpid
    from /lib/libpthread.so.0
  • #2 IA__g_spawn_sync
    at gspawn.c line 382
  • #3 IA__g_spawn_command_line_sync
    at gspawn.c line 694
  • #4 ??
    from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
  • #5 ??
    from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
  • #6 ??
    from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
  • #7 <signal handler called>
  • #8 g_mount_spec_canonicalize_path
    at gmountspec.c line 481
  • #9 g_daemon_file_new
    at gdaemonfile.c line 99
  • #10 g_daemon_vfs_get_file_for_uri
    at gdaemonvfs.c line 431
  • #11 IA__g_vfs_get_file_for_uri
    at gvfs.c line 123
  • #12 IA__g_file_new_for_uri
    at gfile.c line 4863
  • #13 IA__g_app_info_launch_default_for_uri
    at gappinfo.c line 557
  • #14 IA__gtk_show_uri
    at gtkshow.c line 73
  • #15 open_url
    at terminal-util.c line 125
  • #16 terminal_util_open_url
    at terminal-util.c line 239
  • #17 screen_match_clicked_cb
    at terminal-window.c line 1214
  • #18 _terminal_marshal_BOOLEAN__STRING_INT_UINT
    at terminal-marshal.c line 94
  • #19 IA__g_closure_invoke
    at gclosure.c line 767
  • #20 signal_emit_unlocked_R
    at gsignal.c line 3244
  • #21 IA__g_signal_emit_valist
    at gsignal.c line 2987
  • #22 IA__g_signal_emit
    at gsignal.c line 3034
  • #23 terminal_screen_button_press
    at terminal-screen.c line 1488
  • #24 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #25 g_type_class_meta_marshal
    at gclosure.c line 878
  • #26 IA__g_closure_invoke
    at gclosure.c line 767
  • #27 signal_emit_unlocked_R
    at gsignal.c line 3282
  • #28 IA__g_signal_emit_valist
    at gsignal.c line 2987
  • #29 IA__g_signal_emit
    at gsignal.c line 3034
  • #30 gtk_widget_event_internal
    at gtkwidget.c line 4745
  • #31 IA__gtk_propagate_event
    at gtkmain.c line 2391
  • #32 IA__gtk_main_do_event
    at gtkmain.c line 1581
  • #33 gdk_event_dispatch
    at gdkevents-x11.c line 2365
  • #34 g_main_dispatch
    at gmain.c line 2144
  • #35 IA__g_main_context_dispatch
    at gmain.c line 2697
  • #36 g_main_context_iterate
    at gmain.c line 2778
  • #37 IA__g_main_loop_run
    at gmain.c line 2986
  • #38 IA__gtk_main
    at gtkmain.c line 1200
  • #39 main
    at terminal.c line 1252


----------- .xsession-errors ---------------------
Cannot access memory at address 0x27
Cannot access memory at address 0x27
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
** (nautilus:1377): WARNING **: Unable to add monitor: Not supported
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
(gnome-terminal:1137): Vte-WARNING **: No handler for control sequence `device-control-string' defined.
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
Window manager warning: Attempt to perform window operation 20 on window none when operation 20 on none already in effect
Cannot access memory at address 0x27
Cannot access memory at address 0x27
--------------------------------------------------
Comment 3 Ricky Zhou 2008-12-12 23:31:13 UTC
So apparently, g_vfs_decode_uri can return NULL, which I think ends up setting path to NULL in g_daemon_vfs_get_file_for_uri.  Here's an untested patch to trunk that checks if path is NULL before continuing:

Index: client/gdaemonvfs.c
===================================================================
--- client/gdaemonvfs.c (revision 2134)
+++ client/gdaemonvfs.c (working copy)
@@ -428,7 +428,7 @@
       return file;
     }
   
-  if (get_mountspec_from_uri (daemon_vfs, uri, &spec, &path))
+  if (get_mountspec_from_uri (daemon_vfs, uri, &spec, &path) && path != NULL)
     {
       file = g_daemon_file_new (spec, path);
       g_mount_spec_unref (spec);
Comment 4 Christian Persch 2008-12-13 18:28:35 UTC
Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find.


*** This bug has been marked as a duplicate of 546256 ***