FS#56180 - [lensfun] segfault in lfModifier::~lfModifier
Attached to Project:
Arch Linux
Opened by David Phillips (phillid) - Tuesday, 31 October 2017, 10:35 GMT
Last edited by Antonio Rojas (arojas) - Saturday, 11 November 2017, 11:49 GMT
Opened by David Phillips (phillid) - Tuesday, 31 October 2017, 10:35 GMT
Last edited by Antonio Rojas (arojas) - Saturday, 11 November 2017, 11:49 GMT
|
Details
Description:
The lensfun library as used by packages such as gimp-ufraw encounters a segmentation fault in the destructor for lfModifier. This destructor only seems to be invoked when an image either the program should exit, or when the next image in the queue should be loaded for processing. Rebuilding lensfun resolved the issue for me. Initially just used git HEAD, observed the issue gone and ran a git bisect, but it proved inconclusive. I tried rebuilding locally from asp with no changes to the PKGBUILD whatsoever and the bug disappeared. Additional info: * Running lensfun 0.3.2-3 * Running gimp-ufraw 0.22-10 * Stacktrace from running into the segfault in lensfun-0.3.2-3 through ufraw attached. A few syms missing. Steps to reproduce: 1) Open ufraw (untested with other tools that make use of lensfun's library) 2) Load a raw or JPG image 3) Press "Cancel" in ufraw 4) Observe segfault 5) Stroke beard, scratch head 6) Rebuild and find the bug mysteriously gone |
This task depends upon
Closed by Antonio Rojas (arojas)
Saturday, 11 November 2017, 11:49 GMT
Reason for closing: Fixed
Additional comments about closing: lensfun 0.3.2-5
Saturday, 11 November 2017, 11:49 GMT
Reason for closing: Fixed
Additional comments about closing: lensfun 0.3.2-5
I should also make it doubly clear that I mean rebuilding lensfun, not ufraw.
Further thorough cleaning and testing indicates that when lensfun is built with clang, inside chroot or out, then the problem goes away. I will investigate and take it upstream. Sorry for the noise.
EDIT: I have confirmed that it is an issue with ufraw itself passing a null pointer to the destructor. Perhaps clang inserts some null guards in destructors. I'm not so well versed in these things to be able to tell, nor to be able to tell gcc to do such things.