<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>35328</bug_id>
          
          <creation_ts>2018-09-01 14:01:47 +0300</creation_ts>
          <short_desc>SegFault в xfce4-appfinder (was: Окошко по Alt-F2 почти сразу закрывается)</short_desc>
          <delta_ts>2018-09-04 22:48:12 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>xfce4-appfinder</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Mikhail Efremov">sem</assigned_to>
          <cc>cas</cc>
    
    <cc>oddity</cc>
    
    <cc>sem</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>173816</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2018-09-01 14:01:47 +0300</bug_when>
    <thetext>Нажимаем Alt-F2, появляется окно запуска команды, которое через секунду закрывается с большим количеством одинаковых сообщений в консоль
(xfce4-appfinder:8275): GLib-CRITICAL **: 14:00:38.106: g_utf8_casefold: assertion &apos;str != NULL&apos; failed

(xfce4-appfinder:8275): GLib-CRITICAL **: 14:00:38.106: g_utf8_casefold: assertion &apos;str != NULL&apos; failed

(xfce4-appfinder:8275): GLib-CRITICAL **: 14:00:38.107: g_utf8_casefold: assertion &apos;str != NULL&apos; failed


(xfce4-appfinder:7481): GLib-CRITICAL **: 13:58:27.755: g_utf8_collate: assertion &apos;str2 != NULL&apos; failed
(xfce4-appfinder:7481): GLib-CRITICAL **: 13:58:27.755: g_utf8_collate: assertion &apos;str1 != NULL&apos; failed

xfce4-appfinder-4.13.1-alt1.x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173829</commentid>
    <comment_count>1</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2018-09-02 21:47:57 +0300</bug_when>
    <thetext>Нашёл что-то похожее:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=756770

Наконец дошло, что это Segfault. Запустил через gdb и получил:

Program received signal SIGSEGV, Segmentation fault.
0x0000003da1680c03 in _g_utf8_normalize_wc (str=0x0, max_len=max_len@entry=-1, mode=mode@entry=G_NORMALIZE_ALL) at gunidecomp.c:372
372	  while ((max_len &lt; 0 || p &lt; str + max_len) &amp;&amp; *p)
(gdb) bt
#0  0x0000003da1680c03 in _g_utf8_normalize_wc (str=0x0, max_len=max_len@entry=-1, mode=mode@entry=G_NORMALIZE_ALL) at gunidecomp.c:372
#1  0x0000003da168113b in g_utf8_normalize (str=&lt;optimized out&gt;, len=len@entry=-1, mode=mode@entry=G_NORMALIZE_ALL) at gunidecomp.c:533
#2  0x0000000000412065 in xfce_appfinder_window_sort_items (model=0x87f950, a=0x7fffffffd3c0, b=0x7fffffffd3e0, data=&lt;optimized out&gt;) at appfinder-window.c:1954
#3  0x00007ffff77be76e in gtk_tree_model_sort_compare_func (a=&lt;optimized out&gt;, b=&lt;optimized out&gt;, user_data=0x7fffffffd520) at gtktreemodelsort.c:1842
#4  0x0000003da1667c6d in node_find_closest (haystack=0x9f5530, needle=needle@entry=0xa12e00, end=0x745130, iter_cmp=iter_cmp@entry=0x3da16678f0 &lt;iter_compare&gt;, cmp_data=cmp_data@entry=0x7fffffffd4c0)
    at gsequence.c:1799
#5  0x0000003da16680fe in node_insert_sorted (node=&lt;optimized out&gt;, new=new@entry=0xa12e00, end=&lt;optimized out&gt;, iter_cmp=iter_cmp@entry=0x3da16678f0 &lt;iter_compare&gt;, cmp_data=cmp_data@entry=0x7fffffffd4c0)
    at gsequence.c:2037
#6  0x0000003da1669004 in g_sequence_insert_sorted_iter (seq=0x8a9790, data=&lt;optimized out&gt;, iter_cmp=iter_cmp@entry=0x3da16678f0 &lt;iter_compare&gt;, cmp_data=cmp_data@entry=0x7fffffffd4c0) at gsequence.c:1050
#7  0x0000003da16690c8 in g_sequence_insert_sorted (seq=&lt;optimized out&gt;, data=data@entry=0xa13040, cmp_func=cmp_func@entry=0x7ffff77be710 &lt;gtk_tree_model_sort_compare_func&gt;, cmp_data=&lt;optimized out&gt;)
    at gsequence.c:740
#8  0x00007ffff77c17a9 in gtk_tree_model_sort_insert_value (s_iter=0x7fffffffd500, s_path=0x788d80, level=0x8a7650, tree_model_sort=0x869e50) at gtktreemodelsort.c:2074
#9  gtk_tree_model_sort_row_inserted (s_model=&lt;optimized out&gt;, s_path=0x788d80, s_iter=&lt;optimized out&gt;, data=0x869e50) at gtktreemodelsort.c:971
#10 0x0000003da1a109ed in g_closure_invoke (closure=0x89ad10, return_value=0x0, n_param_values=3, param_values=0x7fffffffd750, invocation_hint=0x7fffffffd6f0) at gclosure.c:804
#11 0x0000003da1a231ce in signal_emit_unlocked_R (node=node@entry=0x7fffe800ded0, detail=detail@entry=0, instance=instance@entry=0x87f950, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7fffffffd750) at gsignal.c:3635
#12 0x0000003da1a2b7b5 in g_signal_emit_valist (instance=&lt;optimized out&gt;, signal_id=&lt;optimized out&gt;, detail=&lt;optimized out&gt;, var_args=var_args@entry=0x7fffffffd928) at gsignal.c:3391
#13 0x0000003da1a2c182 in g_signal_emit (instance=instance@entry=0x87f950, signal_id=&lt;optimized out&gt;, detail=detail@entry=0) at gsignal.c:3447
#14 0x00007ffff77b7e70 in gtk_tree_model_row_inserted (tree_model=tree_model@entry=0x87f950, path=path@entry=0x788d80, iter=iter@entry=0x7fffffffda10) at gtktreemodel.c:1855
#15 0x00007ffff77bd241 in gtk_tree_model_filter_emit_row_inserted_for_path (filter=filter@entry=0x87f950, c_model=c_model@entry=0x6d8b40, c_path=c_path@entry=0x786000, c_iter=c_iter@entry=0x7d1300)
    at gtktreemodelfilter.c:1954
#16 0x00007ffff77bd933 in gtk_tree_model_filter_row_inserted (c_model=0x6d8b40, c_path=0x786000, c_iter=0x7d1300, data=0x87f950) at gtktreemodelfilter.c:2283
#17 0x0000003da1a109ed in g_closure_invoke (closure=0x89b100, return_value=0x0, n_param_values=3, param_values=0x7fffffffdd30, invocation_hint=0x7fffffffdcd0) at gclosure.c:804
#18 0x0000003da1a231ce in signal_emit_unlocked_R (node=node@entry=0x7fffe800ded0, detail=detail@entry=0, instance=instance@entry=0x6d8b40, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7fffffffdd30) at gsignal.c:3635
#19 0x0000003da1a2b7b5 in g_signal_emit_valist (instance=&lt;optimized out&gt;, signal_id=&lt;optimized out&gt;, detail=&lt;optimized out&gt;, var_args=var_args@entry=0x7fffffffdf08) at gsignal.c:3391
#20 0x0000003da1a2c182 in g_signal_emit (instance=&lt;optimized out&gt;, signal_id=&lt;optimized out&gt;, detail=detail@entry=0) at gsignal.c:3447
#21 0x00007ffff77b7e70 in gtk_tree_model_row_inserted (tree_model=&lt;optimized out&gt;, path=path@entry=0x786000, iter=iter@entry=0x7fffffffdfe0) at gtktreemodel.c:1855
#22 0x000000000040df18 in xfce_appfinder_model_collect_idle (user_data=&lt;optimized out&gt;) at appfinder-model.c:757
#23 0x00007ffff71c6700 in gdk_threads_dispatch (data=0x7ab560) at gdk.c:743
#24 0x0000003da164ee35 in g_main_dispatch (context=0x65f270) at gmain.c:3176
#25 g_main_context_dispatch (context=context@entry=0x65f270) at gmain.c:3829
#26 0x0000003da164f1d8 in g_main_context_iterate (context=0x65f270, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at gmain.c:3902
#27 0x0000003da164f4e2 in g_main_loop_run (loop=0x8ce6a0) at gmain.c:4098
#28 0x00007ffff76af385 in gtk_main () at gtkmain.c:1323
#29 0x0000000000409e73 in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;) at main.c:313
(gdb)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173830</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2018-09-02 22:07:34 +0300</bug_when>
    <thetext>xfce_appfinder_window_sort_items вызывает g_utf8_normalize для нулевого указателя здесь:


1953	  gtk_tree_model_get (model, b, XFCE_APPFINDER_MODEL_COLUMN_TITLE, &amp;title_b, -1);
1954	  normalized = g_utf8_normalize (title_b, -1, G_NORMALIZE_ALL);
1955	  title_b = g_utf8_casefold (normalized, -1);
1956	  g_free (normalized);

После (gdb) break appfinder-window.c:1954 if title_b == 0
обнаружилось
(gdb) print title_a
$2 = (gchar *) 0xa10c00 &quot;audacity&quot;
(gdb) print title_b
$3 = (gchar *) 0x0

b - это итератор по GtkTreeIter

https://developer.gnome.org/gtk3/3.20/GtkTreeModel.html#gtk-tree-model-get</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173831</commentid>
    <comment_count>3</comment_count>
      <attachid>7731</attachid>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2018-09-02 22:58:24 +0300</bug_when>
    <thetext>Created attachment 7731
desktop-файл, с которым падает xfce4-appfinder

Скорее всего, воспроизводится только у меня из-за какого-то левого desktop-файла.
Я даже нашёл его и прикладываю.

Завёл багу в апстриме
https://bugzilla.xfce.org/show_bug.cgi?id=14655</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173904</commentid>
    <comment_count>4</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2018-09-04 22:48:12 +0300</bug_when>
    <thetext>xfce4-appfinder-4.13.1-alt2 -&gt; sisyphus:

Tue Sep 04 2018 Mikhail Efremov &lt;sem@altlinux&gt; 4.13.1-alt2
- Ignore menu items without name (closes: #35328).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7731</attachid>
            <date>2018-09-02 22:58:24 +0300</date>
            <delta_ts>2018-09-02 22:58:24 +0300</delta_ts>
            <desc>desktop-файл, с которым падает xfce4-appfinder</desc>
            <filename>broken.desktop</filename>
            <type>application/x-desktop</type>
            <size>309</size>
            <attacher name="Vitaly Lipatov">lav</attacher>
            
              <data encoding="base64">W0Rlc2t0b3AgRW50cnldCk5hbWU97sHTzMXE09TXzyDCxdogx9LBzsnDCkV4ZWM9ZW52IFdJTkVQ
UkVGSVg9Ii9ob21lL2xhdi8ud2luZSIgd2luZSAiQzpcXFByb2dyYW0gRmlsZXNcXO7B08zFxNPU
188gwsXaIMfSwc7Jw1xcSW5oX0NsaWVudC5leGUiIApUeXBlPUFwcGxpY2F0aW9uClN0YXJ0dXBO
b3RpZnk9dHJ1ZQpQYXRoPS9ob21lL2xhdi8ud2luZS9kb3NkZXZpY2VzL2M6L1Byb2dyYW0gRmls
ZXMv7sHTzMXE09TXzyDCxdogx9LBzsnDCkljb249L2hvbWUvbGF2Ly5sb2NhbC9zaGFyZS9pY29u
cy9lNTY0X2luaF9jbGllbnQuMC54cG0K
</data>

          </attachment>
      

    </bug>

</bugzilla>