Bug 892283
Summary: | [abrt] pragha-1.1.1-1.fc17: _IO_ftell: Process /usr/bin/pragha was killed by signal 11 (SIGSEGV) | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Diego <diego.ml> | ||||||||||||||||||||||||||||||
Component: | taglib | Assignee: | Rex Dieter <rdieter> | ||||||||||||||||||||||||||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||||||||||||||||||||||
Severity: | unspecified | Docs Contact: | |||||||||||||||||||||||||||||||
Priority: | unspecified | ||||||||||||||||||||||||||||||||
Version: | 17 | CC: | christoph.wickert, rdieter, twegener | ||||||||||||||||||||||||||||||
Target Milestone: | --- | Keywords: | Patch | ||||||||||||||||||||||||||||||
Target Release: | --- | ||||||||||||||||||||||||||||||||
Hardware: | i686 | ||||||||||||||||||||||||||||||||
OS: | Unspecified | ||||||||||||||||||||||||||||||||
Whiteboard: | abrt_hash:66aa0f9eb4d768d69cea6cfae5e4a6233b47b586 | ||||||||||||||||||||||||||||||||
Fixed In Version: | pragha-1.1.2.1-2.fc20 | Doc Type: | Bug Fix | ||||||||||||||||||||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||||||||||||||||||||
Clone Of: | Environment: | ||||||||||||||||||||||||||||||||
Last Closed: | 2013-02-27 02:31:52 UTC | Type: | --- | ||||||||||||||||||||||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||||||||||||||||||||||
Documentation: | --- | CRM: | |||||||||||||||||||||||||||||||
Verified Versions: | Category: | --- | |||||||||||||||||||||||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||||||||||||||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||||||||||||||||||||||
Embargoed: | |||||||||||||||||||||||||||||||||
Attachments: |
|
Description
Diego
2013-01-06 10:13:00 UTC
Created attachment 673308 [details]
File: core_backtrace
Created attachment 673309 [details]
File: environ
Created attachment 673310 [details]
File: backtrace
Created attachment 673311 [details]
File: limits
Created attachment 673312 [details]
File: cgroup
Created attachment 673313 [details]
File: smolt_data
Created attachment 673314 [details]
File: xsession_errors
Created attachment 673315 [details]
File: executable
Created attachment 673316 [details]
File: maps
Created attachment 673317 [details]
File: dso_list
Created attachment 673318 [details]
File: proc_pid_status
Created attachment 673319 [details]
File: var_log_messages
Created attachment 673320 [details]
File: open_fds
I've hit a crash in taglib in the same location, but via the clementine audio player. In my case it was attempting to read the tags for a file for which the current user did not have permission to access, but did have permission to access the directory in which it resided. This is readily reproducible. taglib-1.8-2.fc18.x86_64 clementine-1.0.1-12.fc18.x86_64 #0 __GI__IO_ftell (fp=0x0) at ioftell.c:38 #1 0x00007f19270fb2fd in TagLib::File::find (this=0x7f18b00e71b0, pattern=..., fromOffset=0, before=...) at /usr/src/debug/taglib-1.8/taglib/toolkit/tfile.cpp:260 #2 0x00007f19270e5339 in TagLib::Ogg::File::nextPage (this=this@entry=0x7f18b00e71b0) at /usr/src/debug/taglib-1.8/taglib/ogg/oggfile.cpp:232 #3 0x00007f19270e5d60 in TagLib::Ogg::File::packet (this=0x7f18b00e71b0, i=1) at /usr/src/debug/taglib-1.8/taglib/ogg/oggfile.cpp:93 #4 0x00007f19270ebcf1 in TagLib::Vorbis::File::read (this=this@entry=0x7f18b00e71b0, readProperties=readProperties@entry=true, propertiesStyle=propertiesStyle@entry=TagLib::AudioProperties::Average) at /usr/src/debug/taglib-1.8/taglib/ogg/vorbis/vorbisfile.cpp:124 #5 0x00007f19270ebf29 in TagLib::Vorbis::File::File (this=0x7f18b00e71b0, file=<optimized out>, readProperties=true, propertiesStyle=TagLib::AudioProperties::Average) at /usr/src/debug/taglib-1.8/taglib/ogg/vorbis/vorbisfile.cpp:70 #6 0x00007f1927120964 in TagLib::FileRef::create (fileName=0x7f18b00e23f8 "/redacted_yes_read_permission/redacted_no_read_permission.ogg", readAudioProperties=true, audioPropertiesStyle=TagLib::AudioProperties::Average) at /usr/src/debug/taglib-1.8/taglib/fileref.cpp:238 #7 0x00007f192712177f in TagLib::FileRef::FileRef (this=0x7f18b00cf090, fileName=<optimized out>, readAudioProperties=<optimized out>, audioPropertiesStyle=<optimized out>) at /usr/src/debug/taglib-1.8/taglib/fileref.cpp:85 #8 0x0000000000571158 in TagLibFileRefFactory::GetFileRef (this=<optimized out>, filename=...) at /usr/src/debug/clementine-1.0.1/src/core/song.cpp:261 #9 0x000000000057ca23 in Song::InitFromFile (this=0x7f18d2ffab10, filename=..., directory_id=-1) at /usr/src/debug/clementine-1.0.1/src/core/song.cpp:477 #10 0x000000000074bdec in LibraryWatcher::ScanNewFile (this=this@entry=0x7f18b0001f20, file=..., path=..., matching_cue=..., cues_processed=cues_processed@entry=0x7f18d2ffacd0) at /usr/src/debug/clementine-1.0.1/src/library/librarywatcher.cpp:491 Similar issue exists when non-accessible (e.g. non-existent) files are given to taglib for the following formats: .spx .ape .ogg .oga Compiling the demo from taglib-devel provides an easy to run reproduction (just give it a non-existent file with one of the above extensions to trigger the segfault): /usr/share/doc/taglib-devel-1.8/examples/tagreader.cpp Created attachment 695858 [details]
Quick fix patch that solves this immediate problem.
This quick fix solves the problem and makes consumers such as clementine happy.
However, a proper fix would involve adding tests and possibly a wider re-factor to generalise checking for files that cannot be opened, so that it doesn't have to be done per file type.
May be worth querying on taglib mailing list about the provided FileRef api, about guarantees/assumptions one can make about non-existent or non-readable files. (hit return too quickly), otherwise Tim's suggested approach per patch in comment #16 seems reasonable. Started a mailing list thread on the topic, http://mail.kde.org/pipermail/taglib-devel/2013-February/002441.html Looks like we may have a fix to try out, https://github.com/taglib/taglib/issues/78 taglib-1.8-3.20121215git.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/taglib-1.8-3.20121215git.fc17 taglib-1.8-3.20121215git.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/taglib-1.8-3.20121215git.fc18 Package taglib-1.8-3.20121215git.fc17: * should fix your issue, * was pushed to the Fedora 17 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing taglib-1.8-3.20121215git.fc17' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-2304/taglib-1.8-3.20121215git.fc17 then log in and leave karma (feedback). (In reply to comment #17) > May be worth querying on taglib mailing list about the provided FileRef api, > about guarantees/assumptions one can make about non-existent or non-readable > files. It broke existing consumers with an update, so there was an implicit guarantee. Anyway, the update in Comment 22 works for me. Tested with Clementine, Pragha, and the taglib-devel demo. All of these no longer crash when supplied with a non-existent or inaccessible .ogg file. Full library scans in both Clementine and Pragha were successful. The taglib-devel demo also doesn't crash for non-existent .spx, .ape and .oga. Thanks, Rex! taglib-1.8-3.20121215git.fc17 has been pushed to the Fedora 17 stable repository. If problems still persist, please make note of it in this bug report. taglib-1.8-3.20121215git.fc18 has been pushed to the Fedora 18 stable repository. If problems still persist, please make note of it in this bug report. pragha-1.1.2.1-1.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/pragha-1.1.2.1-1.fc20 pragha-1.1.2.1-1.fc19 has been submitted as an update for Fedora 19. https://admin.fedoraproject.org/updates/pragha-1.1.2.1-1.fc19 pragha-1.1.2.1-1.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/pragha-1.1.2.1-1.fc18 pragha-1.1.2.1-2.fc18 has been pushed to the Fedora 18 stable repository. If problems still persist, please make note of it in this bug report. pragha-1.1.2.1-2.fc19 has been pushed to the Fedora 19 stable repository. If problems still persist, please make note of it in this bug report. pragha-1.1.2.1-2.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report. |