Menu

#977 PCmanFM crash while doing search in ftp folder, using regex for file contents

1.2
pending-fixed
libfm (316)
7
2016-06-27
2015-08-17
Dogen
No

PCmanFM crash while doing search in ftp folder, using regex for file contents.

Reproduction:

  1. Open some ftp connection
  2. Tools > Find Files
  3. Search for any file name pattern "" using regex in "file contains" i.e. : .<regex patern="">.*

Got following stacktrace:

[New Thread 0xafc60b70 (LWP 4489)]
(pcmanfm:4433): DEBUG: reactivated gestures to page 1
(pcmanfm:4433): DEBUG: found matched: screenshot.png
(pcmanfm:4433): DEBUG: found matched: admin-meta-boxes.php
(pcmanfm:4433): DEBUG: found matched: options.php
(pcmanfm:4433): DEBUG: found matched: tools.php
(pcmanfm:4433): DEBUG: found matched: knockout.js
(pcmanfm:4433): DEBUG: found matched: admin-write.php
(pcmanfm:4433): DEBUG: found matched: admin.php
(pcmanfm:4433): DEBUG: found matched: seo.php
(pcmanfm:4433): DEBUG: found matched: layout.php
(pcmanfm:4433): DEBUG: found matched: compatibility-woocommerce.php
(pcmanfm:4433): DEBUG: found matched: woocommerce-design-elements.php
(pcmanfm:4433): DEBUG: found matched: woocommerce-design-defaults.php
(pcmanfm:4433): DEBUG: found matched: woocommerce-breadcrumbs.php
(pcmanfm:4433): DEBUG: found matched: Tumblr.png
(pcmanfm:4433): DEBUG: found matched: Flickr.png
** (pcmanfm:4433): DEBUG: found matched: Digg.png

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb0468b70 (LWP 4441)]
0xb6fa974c in ?? () from /lib/i386-linux-gnu/libpcre.so.3

gdb:
(gdb) bt full

0 0xb6fa974c in ?? () from /lib/i386-linux-gnu/libpcre.so.3

No symbol table info available.

1 0xb6fb279b in pcre_exec () from /lib/i386-linux-gnu/libpcre.so.3

No symbol table info available.

2 0xb73a2b2f in g_match_info_next () from /lib/i386-linux-gnu/libglib-2.0.so.0

No symbol table info available.

3 0xb73a3a18 in g_regex_match_full () from /lib/i386-linux-gnu/libglib-2.0.so.0

No symbol table info available.

4 0xb73a3abb in g_regex_match () from /lib/i386-linux-gnu/libglib-2.0.so.0

No symbol table info available.

5 0xb6414fa6 in fm_search_job_match_content_line_based (error=0xb0468048, cancellable=0x836d580, stream=<optimized out="">,

priv=0x82b71d0, info=<optimized out>) at vfs-search.c:662
    line_len = 27
    line = 0x8195b48 "\211\242\222H\247ZyWT+\212\222\250\374\342\356-[ܕ[\246\326\362\312\324J"
    ret = 0
    input_stream = 0x838dd98

6 fm_search_job_match_content (error=0xb0468048, cancellable=0x836d580, parent=0x8332a68, info=0x83ad068, priv=0x82b71d0)

at vfs-search.c:774
    file = <optimized out>
    stream = 0x8332a68
    ret = 0

7 fm_search_job_match_file (error=0xb0468048, cancellable=0x836d580, parent=0x8332a68, info=0x83ad068, priv=0x82b71d0)

at vfs-search.c:874

No locals.

8 _fm_vfs_search_enumerator_next_file (enumerator=0x82b71d0, cancellable=0x836d580, error=0xb046810c) at vfs-search.c:257

    enu = 0x82b71d0
    iter = <optimized out>
    file_info = 0x83ad068
    err = 0x0
    container = <optimized out>

9 0xb74dc7cb in g_file_enumerator_next_file () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0

No symbol table info available.

10 0xb7986bd9 in fm_dir_list_job_run_gio (job=0x82b71d0) at job/fm-dir-list-job.c:397

    inf = <optimized out>
    err = 0x0
    enu = 0x82b71d0
    fi = <optimized out>
    fmjob = 0x829e5b0
    gf = <optimized out>
    query = <optimized out>

11 fm_dir_list_job_run (fmjob=0x829e5b0) at job/fm-dir-list-job.c:465

    ret = 0
    job = 0x82b71d0

12 0xb798d763 in job_thread (job=0x829e5b0, unused=0x0) at job/fm-job.c:370

    klass = <optimized out>

13 0xb73b5888 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0

---Type <return> to continue, or q <return> to quit---
No symbol table info available.

14 0xb73b4eb3 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0

No symbol table info available.

15 0xb730dc39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0

No symbol table info available.

16 0xb727ac6e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

No symbol table info available.

Thanks

Discussion

  • Lonely Stranger

    Lonely Stranger - 2015-12-11

    Unfortunately I cannot reproduce your issue. Could you provide more detailed information to repruce it, please? Exact search pattern (from the address bar) would be perfect but I suspect it cannot be retrieved due to crash so at least exact ftp site, file name pattern and search pattern would be very helpful. Thank you very much.

     
  • Lonely Stranger

    Lonely Stranger - 2015-12-11
    • labels: --> libfm
    • Priority: 5 --> 7
     
  • Lonely Stranger

    Lonely Stranger - 2016-02-13
    • status: open --> pending
     
  • Lonely Stranger

    Lonely Stranger - 2016-02-13

    Given the crash has somewhat higher priority, I really would like to get some information to reproduce it and fix. Thank you in advance.

     
  • Tsu Jan

    Tsu Jan - 2016-05-24

    Shouldn't the nullity of GFileEnumerator *enumerator be checked in the beginning of _fm_vfs_search_enumerator_next_file()?

     
  • Tsu Jan

    Tsu Jan - 2016-06-15

    Just for the record, using of G_REGEX_RAW fixes a very similar crash.

    g_regex_match() should be fed by utf8 strings unless G_REGEX_RAW is used. Otherwise, a crash might happen.

     
  • Lonely Stranger

    Lonely Stranger - 2016-06-27
    • status: pending --> pending-fixed
    • assigned_to: Lonely Stranger
     
  • Lonely Stranger

    Lonely Stranger - 2016-06-27

    I think this issue is the same that was reported on Github and is fixed recently in GIT sources. Thank you very much.

     

Anonymous
Anonymous

Add attachments
Cancel