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 478175 - Typo in /usr/share/gedit-2/taglist/HTML.tags.gz cause gedit crash
Typo in /usr/share/gedit-2/taglist/HTML.tags.gz cause gedit crash
Status: RESOLVED FIXED
Product: gedit-plugins
Classification: Other
Component: General
2.18.x
Other Linux
: Normal critical
: ---
Assigned To: Gedit maintainers
Gedit maintainers
Depends on:
Blocks:
 
 
Reported: 2007-09-18 20:45 UTC by Sven Arvidsson
Modified: 2019-03-23 20:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18



Description Sven Arvidsson 2007-09-18 20:45:45 UTC
[ From http://bugs.debian.org/443108 by LI Daobing ]

"$ zgrep -C 1 -n begin /usr/share/gedit-2/taglist/HTML.tags.gz | head -12
93394-  <Tag name="HTML version">
93395:    <begin>version=</begin>
93396-  </Tag>
--
94526-  <Tag name="HTML version" xml:lang="af">
94527:    <begin>version=</begin>
94528-  </Tag>
--
95658-  <Tag name="HTML version" xml:lang="am">
95659:    <begin>version=</begin>
95660-  </Tag>
--
$ 
all these `begin' should be `Begin', which can cause gedit crash when insrt `HTML version' tag into a txt.


following is the crash information.

sys:1: GtkWarning: real_set_mark: assertion `_gtk_text_iter_get_btree (where) == tree' failed
sys:1: GtkWarning: Invalid text buffer iterator: either the iterator is uninitialized, or the characters/pixbufs/widgets in the buffer have been modified since the iterator was created.
You must use marks, character numbers, or line numbers to preserve a position across buffer modifications.
You can apply tags and insert marks without invalidating your iterators,
but any mutation that affects 'indexable' buffer contents (contents that can be referred to by character offset)
will invalidate all outstanding iterators

Gtk-ERROR **: file /tmp/buildd/gtk+2.0-2.10.13/gtk/gtktextbtree.c: line 1535 (_gtk_text_btree_find_line_top): should not be reached
aborting..."


Partial backtrace:

Thread 1 (Thread 0xb6d956b0 (LWP 2980))

  • #0 ??
  • #1 ??
  • #2 ??
  • #3 ??
  • #4 raise
    from /lib/i686/cmov/libc.so.6
  • #5 abort
    from /lib/i686/cmov/libc.so.6
  • #6 IA__g_logv
  • #7 IA__g_log
    at /tmp/buildd/glib2.0-2.14.1/glib/gmessages.c line 517
  • #8 IA__g_return_if_fail_warning
  • #9 real_set_mark
    at /tmp/buildd/gtk+2.0-2.11.6/gtk/gtktextbtree.c line 2700
  • #10 _gtk_text_btree_select_range
    at /tmp/buildd/gtk+2.0-2.11.6/gtk/gtktextbtree.c line 2890
  • #11 IA__gtk_text_buffer_select_range
    at /tmp/buildd/gtk+2.0-2.11.6/gtk/gtktextbuffer.c line 2398
  • #12 IA__gtk_text_buffer_place_cursor
    at /tmp/buildd/gtk+2.0-2.11.6/gtk/gtktextbuffer.c line 2365
  • #13 ??
    from /usr/lib/gedit-2/plugins/libtaglist.so
  • #14 ??
  • #15 ??
  • #16 ??
  • #17 ??
    from /usr/lib/gedit-2/plugins/libtaglist.so
  • #18 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #19 ??

Comment 1 Paolo Borelli 2007-09-21 14:11:48 UTC
Apart from the typo in the tags xml file, the crash is due to the following silly error in the parser, which causes the parser to not drop invalid tags...

-       if ((tag->begin == NULL) && (tag->end = NULL))
+       if ((tag->begin == NULL) && (tag->end == NULL))

I've fixed both the parser and the lang file now. Thanks a lot for the report!