GNOME Bugzilla – Bug 319621
bus error on malformed .info file or with external links
Last modified: 2005-12-10 15:39:51 UTC
Version details: 2.12.1 Distribution/Version: OS X 10.3, all libs from fink 1. Install mozilla 1.7.5 2. Install yelp 2.12.1 (--enable-info --with-mozilla=mozilla) 3. Install things that have texinfo files. 4. Use yelp command (with info:/// URI) to read them. Simple (one-part) .info with no external references work fine. A multiparter (ocaml.info, that has splitoff parts ocaml-{1-16}) or a dir that links to additional .info files causes yelp to dump core.
Created attachment 53841 [details] crash from yelp info:///sw/share/info/ocaml.info
Created attachment 53842 [details] crash from yelp info:///sw/share/info/dir
Comment on attachment 53841 [details] crash from yelp info:///sw/share/info/ocaml.info % yelp info:///sw/share/info/ocaml.info Bonobo accessibility support initialized GTK Accessibility Module initialized (yelp:28062): Gtk-CRITICAL **: gtk_stock_lookup: assertion `stock_id != NULL' failed (yelp:28062): Gdk-WARNING **: gdk_property_get(): length value has wrapped in calculation (did you pass G_MAXLONG?) !! Opening ///sw/share/info/ocaml.info... page 0 at offset 0 page 1 at offset 220 Have the indirect mapping table Line: Line: Line: ocaml.info-19: 1092202 !! Opening /usr/share/info/ocaml.info-19.gz... (yelp:28062): GLib-CRITICAL **: g_io_channel_read_to_end: assertion `channel != NULL' failed (yelp:28062): GLib-CRITICAL **: g_io_channel_shutdown: assertion `channel != NULL' failed Bus error (core dumped)
Comment on attachment 53842 [details] crash from yelp info:///sw/share/info/dir % yelp info:///sw/share/info/dir Bonobo accessibility support initialized GTK Accessibility Module initialized (yelp:28075): Gtk-CRITICAL **: gtk_stock_lookup: assertion `stock_id != NULL' failed (yelp:28075): Gdk-WARNING **: gdk_property_get(): length value has wrapped in calculation (did you pass G_MAXLONG?) !! Opening ///sw/share/info/dir... page 0 at offset 0 page 1 at offset 102 Bus error (core dumped)
This appears to be a two-part problem: 1.The .info processor either doesn't understand how to follow external links. That makes the resulting doc "incomplete" (missing nodes or somesuch?) which is a major problem because the renderer appears to render the whole doc, not just the node of interest. Feature request: links to nodes and xrefs should be hyperlinked instead of having a monolithic plain-text rendering. 2. Yelp crashes whenever it can't understand the .info file contents. It's more general than unresolvable node links: 'yelp info:///some-filename' where some-filename is not a .info file crashes too. Yelp should give an error message such as "this does not appear to be a valid texinfo file" instead of just dumping core.
Created attachment 55220 [details] [review] Large fixes
Hi, The attached patch fixes a large number of problems that I've encountered using info in Yelp. With this applied, I can now view all info pages (except dir) on my system. It also adds hyperlink support for menus and only spits out stuff when in debug mode. Enjoy
This was generated from command: yelp info:///usr/share/info/make-info-1.gz on Ubuntu Breezy Backtrace was generated from '/opt/gnome2/bin/yelp' Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread -1227884096 (LWP 25201)] [New Thread -1248932944 (LWP 25203)] [New Thread -1235936336 (LWP 25202)] 0xffffe410 in __kernel_vsyscall ()
+ Trace 64253
Created attachment 55224 [details] [review] Updated patch A slightly updated patch that fixes the crash in comment #8. It also makes info:dir fail gracefully and fixes a regression in the stylesheet.
I've just committed the patch in comment #9, which should fix the 2 issues mentioned in the original bug report, as well as fixing a number of other info page issues. I've also got a semi-working patch to create a table-of-contents page for info files, but I'll move the discussion of that over to bug #316833 (once I get it in a state so it actually works well...) In the mean time, I'm going to close this bug as fixed. Thanks