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 744497 - Crash on scanning FLAC file
Crash on scanning FLAC file
Status: RESOLVED FIXED
Product: easytag
Classification: Other
Component: general
2.3.x
Other Linux
: Normal major
: 2.2
Assigned To: EasyTAG maintainer(s)
EasyTAG maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2015-02-13 22:01 UTC by J.B. Nicholson
Modified: 2015-02-13 22:21 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description J.B. Nicholson 2015-02-13 22:01:33 UTC
I'm not sure if this is OS-specific, so I'll leave the OS as GNU/Linux for now. I also have no idea why this FLAC file would cause a problem.

I'm using EasyTAG 2.3.4. ~/flac-test/ has one FLAC file in it and this file tests okay with flac(1) version 1.3.0. Before running EasyTAG on this FLAC file I re-encoded this FLAC file with flac(1) by running "flac --best --force" on it which appears to decompress and recompress the FLAC file.

Here's a stack trace:
(gdb) run ~/flac-test/
Starting program: /usr/bin/easytag ~/flac-test/
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffee3b5700 (LWP 22119)]
[New Thread 0x7fffec8e0700 (LWP 22120)]
[New Thread 0x7fffe7df2700 (LWP 22121)]

** (easytag:22115): CRITICAL **: ET_Save_File_Data_From_UI: assertion 'ETFile != NULL && ETFile->FileNameCur != NULL && ETFile->FileNameCur->data != NULL' failed

Program received signal SIGSEGV, Segmentation fault.
et_file_list_add (file_list=0x0, 
    filename=filename@entry=0x55555614e110 "/home/jbn/flac-test/05 Mozart, Wolfgang Amadeus - Piano concerto No 20, KV 466 - 2. Romanze.flac") at src/file_list.c:271
271	src/file_list.c: No such file or directory.
(gdb) thread apply all bt

Thread 1 (Thread 0x7ffff7fba9c0 (LWP 22115))

  • #0 et_file_list_add
    at src/file_list.c line 271
  • #1 Read_Directory
    at src/easytag.c line 1017
  • #2 Browser_Tree_Node_Selected
    at src/browser.c line 916
  • #3 _g_closure_invoke_va
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 831
  • #4 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3215
  • #5 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #6 _gtk_tree_selection_internal_select_node
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtktreeselection.c line 1596
  • #7 gtk_tree_selection_select_path
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtktreeselection.c line 899
  • #8 et_browser_select_dir
    at src/browser.c line 1164
  • #9 et_application_window_select_dir
    at src/application_window.c line 1987
  • #10 on_idle_init
    at src/application.c line 124
  • #11 g_main_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3064
  • #12 g_main_context_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3663
  • #13 g_main_context_iterate
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3734
  • #14 g_main_context_iteration
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3795
  • #15 g_application_run
    at /build/buildd/glib2.0-2.40.2/./gio/gapplication.c line 2115
  • #16 main
    at src/main.c line 42

Comment 1 David King 2015-02-13 22:21:44 UTC
Thanks for the bug report, and especially the stack trace. Seeing which line the crash occured on, I guessed that the GError was not set before returning FALSE from flac_tag_read_file_tag(), which turned out to be correct. I fixed this on master as e859c35a810d0688fdba434952611f8671974eda. This should only affect FLAC files with empty tags.