Closed Bug 1731549 Opened 3 years ago Closed 3 years ago

qcms::c_bindings::qcms_profile_create_rgb_with_gamma gets SIGSEGV on SPARC Solaris

Categories

(Core :: Graphics: ImageLib, defect)

Firefox 91
defect

Tracking

()

RESOLVED INVALID

People

(Reporter: petr.sumbera, Unassigned)

References

Details

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0

Steps to reproduce:

Firefox 91 on SPARC Solris sometimes generates core with:

#1  0x00007d0f6b52b7cc in raise () at /lib/64/libc.so.1
#2  0x00007d0f4a17f36c in nsProfileLock::FatalSignalHandler(int, siginfo*, void*) (signo=11, info=0x7ed115eb9e00, context=0x7ed115eb9b20)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/toolkit/profile/nsProfileLock.cpp:174
#3  0x00007d0f4ad9fe18 in js::UnixExceptionHandler(int, siginfo*, void*) () at /usr/lib/firefox/libxul.so
#4  0x00007d0f6b5dd598 in <signal handler called> () at /lib/64/libc.so.1
#5  0x00007d0f6b6195fc in memcpy%sun4v-hwcap3 () at /lib/64/libc.so.1
#6  0x00007d0f4bfc4754 in qcms::c_bindings::qcms_profile_create_rgb_with_gammaPython Exception <class 'gdb.MemoryError'> Cannot access memory at address 0x3faeb851eb851eb9:

    (white_point=..., primaries=#7  0x00007d0f43246708 in mozilla::image::nsPNGDecoder::ReadColorProfile(png_struct_def*, png_info_def*, int, bool*)
    (this=0x7d0f1b5c5400, png_ptr=0x7d0f1b5c9c00, info_ptr=0x7d0f132dc600, color_type=3, sRGBTag=0x7ed115eba388)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/decoders/nsPNGDecoder.cpp:496
#8  0x00007d0f43246d30 in mozilla::image::nsPNGDecoder::info_callback(png_struct_def*, png_info_def*) (png_ptr=0x7d0f1b5c9c00, info_ptr=0x7d0f132dc600)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/decoders/nsPNGDecoder.cpp:590
#9  0x00007d0f48926808 in MOZ_PNG_push_have_info (png_ptr=0x7d0f1b5c9c00, info_ptr=0x7d0f132dc600)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/media/libpng/pngpread.c:1195
#10 0x00007d0f4892468c in MOZ_PNG_push_read_chunk (png_ptr=0x7d0f1b5c9c00, info_ptr=0x7d0f132dc600)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/media/libpng/pngpread.c:352
#11 0x00007d0f48923b38 in MOZ_PNG_proc_some_data (png_ptr=0x7d0f1b5c9c00, info_ptr=0x7d0f132dc600)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/media/libpng/pngpread.c:109
#12 0x00007d0f489239b4 in MOZ_PNG_process_data (png_ptr=0x7d0f1b5c9c00, info_ptr=0x7d0f132dc600, buffer=0x7d0f1b565800 "\211PNG\r\n\032\n", buffer_size=515)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/media/libpng/pngpread.c:46
#13 0x00007d0f43245f4c in mozilla::image::nsPNGDecoder::ReadPNGData(char const*, unsigned long) (this=0x7d0f1b5c5400, aData=0x7d0f1b565800 "\211PNG\r\n\032\n", aLength=515)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/decoders/nsPNGDecoder.cpp:392
#14 0x00007d0f43245a2c in operator()(mozilla::image::nsPNGDecoder::State, char const*, std::size_t) const
    (__closure=0x7ed115ebaa98, aState=mozilla::image::nsPNGDecoder::State::PNG_DATA, aData=0x7d0f1b565800 "\211PNG\r\n\032\n", aLength=515)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/decoders/nsPNGDecoder.cpp:363
#15 0x00007d0f432a07c8 in mozilla::image::StreamingLexer<mozilla::image::nsPNGDecoder::State, 16>::ContinueUnbufferedRead<mozilla::image::nsPNGDecoder::DoDecode(mozilla::image::SourceBufferIterator&, mozilla::image::IResumable*)::<lambda(mozilla::image::nsPNGDecoder::State, char const*, size_t)> >(const char *, std::size_t, std::size_t, struct {...}) (this=0x7d0f1b5c5588, aData=0x7d0f1b565800 "\211PNG\r\n\032\n", aLength=515, aChunkLength=515, aFunc=...)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/StreamingLexer.h:554
#16 0x00007d0f43287b98 in mozilla::image::StreamingLexer<mozilla::image::nsPNGDecoder::State, 16>::UnbufferedRead<mozilla::image::nsPNGDecoder::DoDecode(mozilla::image::SourceBufferIterator&, mozilla::image::IResumable*)::<lambda(mozilla::image::nsPNGDecoder::State, char const*, size_t)> >(mozilla::image::SourceBufferIterator &, struct {...})
    (this=0x7d0f1b5c5588, aIterator=..., aFunc=...) at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/StreamingLexer.h:502
#17 0x00007d0f4325f75c in mozilla::image::StreamingLexer<mozilla::image::nsPNGDecoder::State, 16>::Lex<mozilla::image::nsPNGDecoder::DoDecode(mozilla::image::SourceBufferIterator&, mozilla::image::IResumable*)::<lambda(mozilla::image::nsPNGDecoder::State, char const*, size_t)> >(mozilla::image::SourceBufferIterator &, mozilla::image::IResumable *, struct {...}) (this=0x7d0f1b5c5588, aIterator=..., aOnResume=0x7d0f2407e608, aFunc=...)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/StreamingLexer.h:469
#18 0x00007d0f43245be4 in mozilla::image::nsPNGDecoder::DoDecode(mozilla::image::SourceBufferIterator&, mozilla::image::IResumable*)
    (this=0x7d0f1b5c5400, aIterator=..., aOnResume=0x7d0f2407e608)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/decoders/nsPNGDecoder.cpp:368
#19 0x00007d0f43138a4c in mozilla::image::Decoder::Decode(mozilla::image::IResumable*) (this=0x7d0f1b5c5400, aOnResume=0x7d0f2407e608)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/Decoder.cpp:177
#20 0x00007d0f43136a44 in mozilla::image::DecodedSurfaceProvider::Run() (this=0x7d0f2407e5c0)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/DecodedSurfaceProvider.cpp:123
#21 0x00007d0f43135700 in mozilla::image::DecodePool::SyncRunIfPossible(mozilla::image::IDecodingTask*, nsTString<char> const&)
    (this=0x7d0f2854a800, aTask=0x7d0f2407e608, aURI=...) at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/image/DecodePool.cpp:186
#22 0x00007d0f43184068 in mozilla::image::LaunchDecodingTask(mozilla::image::IDecodingTask*, mozilla::image::RasterImage*, unsigned int, bool) ()
    at /usr/lib/firefox/libxul.so
#23 0x00007d0f43184a3c in mozilla::image::RasterImage::Decode(mozilla::gfx::IntSizeTyped<mozilla::UnorientedPixel> const&, unsigned int, mozilla::image::PlaybackType, bool&, bool&) () at /usr/lib/firefox/libxul.so
#24 0x00007d0f4317ee88 in mozilla::image::RasterImage::LookupFrame(mozilla::gfx::IntSizeTyped<mozilla::UnorientedPixel> const&, unsigned int, mozilla::image::PlaybackType, bool) () at /usr/lib/firefox/libxul.so
#25 0x00007d0f431803bc in mozilla::image::RasterImage::GetFrameInternal(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::Maybe<mozilla::SVGImageContext> const&, mozilla::Maybe<mozilla::image::ImageIntRegion> const&, unsigned int, unsigned int) () at /usr/lib/firefox/libxul.so
#26 0x00007d0f431800c8 in mozilla::image::RasterImage::GetFrameAtSize(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, unsigned int, unsigned int) ()
    at /usr/lib/firefox/libxul.so
#27 0x00007d0f4320a578 in mozilla::image::imgTools::EncodeScaledImage(imgIContainer*, nsTSubstring<char> const&, int, int, nsTSubstring<char16_t> const&, nsIInputStream**)
    () at /usr/lib/firefox/libxul.so
#28 0x00007d0f49d0a4c4 in nsFaviconService::OptimizeIconSizes(mozilla::places::IconData&) () at /usr/lib/firefox/libxul.so
#29 0x00007d0f49d06620 in nsFaviconService::ReplaceFaviconData(nsIURI*, nsTArray<unsigned char> const&, nsTSubstring<char> const&, long) () at /usr/lib/firefox/libxul.so
#30 0x00007d0f49d07dc4 in nsFaviconService::ReplaceFaviconDataFromDataURL(nsIURI*, nsTSubstring<char16_t> const&, long, nsIPrincipal*) () at /usr/lib/firefox/libxul.so
#31 0x00007d0f40984cf0 in NS_InvokeByIndex ()
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_sparc64_openbsd.s:80
#32 0x00007d0f423a6818 in CallMethodHelper::Invoke() (this=0x7ed115ebc308)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/js/xpconnect/src/XPCWrappedNative.cpp:1644
#33 0x00007d0f423a3da0 in CallMethodHelper::Call() (this=0x7ed115ebc308)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/js/xpconnect/src/XPCWrappedNative.cpp:1197
#34 0x00007d0f423a3b08 in XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) (ccx=..., mode=XPCWrappedNative::CALL_METHOD)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/js/xpconnect/src/XPCWrappedNative.cpp:1143
#35 0x00007d0f423b1078 in XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) (cx=0x7d0f58d29000, argc=4, vp=0x7d0f135943a0)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:922
#36 0x00007d0f4a3a4a80 in CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&) () at /usr/lib/firefox/libxul.so
#37 0x00007d0f4a3a5694 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) () at /usr/lib/firefox/libxul.so
#38 0x00007d0f4a3a5da4 in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) () at /usr/lib/firefox/libxul.so
#39 0x00007d0f4a3a5e0c in js::CallFromStack(JSContext*, JS::CallArgs const&) () at /usr/lib/firefox/libxul.so
#40 0x00007d0f4a3b9d54 in Interpret(JSContext*, js::RunState&) () at /usr/lib/firefox/libxul.so
#41 0x00007d0f4a3a47bc in js::RunScript(JSContext*, js::RunState&) () at /usr/lib/firefox/libxul.so
#42 0x00007d0f4a3a5908 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) () at /usr/lib/firefox/libxul.so
#43 0x00007d0f4a3a5da4 in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) () at /usr/lib/firefox/libxul.so
#44 0x00007d0f4a3a5ed8 in js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) ()
    at /usr/lib/firefox/libxul.so
#45 0x00007d0f4a54f7ec in JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) ()
    at /usr/lib/firefox/libxul.so
#46 0x00007d0f43e6b098 in mozilla::dom::MessageListener::ReceiveMessage(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::dom::ReceiveMessageArgument const&
, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&) () at /usr/lib/firefox/libxul.so
#47 0x00007d0f4709d838 in mozilla::dom::MessageListener::ReceiveMessage(mozilla::dom::ReceiveMessageArgument const&, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JS::Realm*) () at /usr/lib/firefox/libxul.so
#48 0x00007d0f470a03a4 in mozilla::dom::JSActor::CallReceiveMessage(JSContext*, mozilla::dom::JSActorMessageMeta const&, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&) () at /usr/lib/firefox/libxul.so
#49 0x00007d0f470a056c in mozilla::dom::JSActor::ReceiveMessage(JSContext*, mozilla::dom::JSActorMessageMeta const&, JS::Handle<JS::Value>, mozilla::ErrorResult&) ()
    at /usr/lib/firefox/libxul.so
#50 0x00007d0f470a43c8 in mozilla::dom::JSActorManager::ReceiveRawMessage(mozilla::dom::JSActorMessageMeta const&, mozilla::Maybe<mozilla::dom::ipc::StructuredCloneData>&&, mozilla::Maybe<mozilla::dom::ipc::StructuredCloneData>&&) () at /usr/lib/firefox/libxul.so
#51 0x00007d0f4707a9c4 in mozilla::dom::WindowGlobalParent::RecvRawMessage(mozilla::dom::JSActorMessageMeta const&, mozilla::Maybe<mozilla::dom::ClonedMessageData> const&, mozilla::Maybe<mozilla::dom::ClonedMessageData> const&) (this=0x7d0f1b5cd800, aMeta=..., aData=..., aStack=...)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/dom/ipc/WindowGlobalParent.cpp:523
#52 0x00007d0f41fd4cc8 in mozilla::dom::PWindowGlobalParent::OnMessageReceived(IPC::Message const&) (this=0x7d0f1b5cd9e0, msg__=...) at PWindowGlobalParent.cpp:852
#53 0x00007d0f41908f3c in mozilla::dom::PContentParent::OnMessageReceived(IPC::Message const&) (this=0x7d0f1bda3800, msg__=...) at PContentParent.cpp:6587
#54 0x00007d0f41610238 in mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&)
    (this=0x7d0f1bda38e8, aProxy=0x7d0f15d2f640, aMsg=...) at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/ipc/glue/MessageChannel.cpp:2084
#55 0x00007d0f4160f8b4 in mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) (this=0x7d0f1bda38e8, aMsg=...)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/ipc/glue/MessageChannel.cpp:2011
#56 0x00007d0f4160e310 in mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) (this=0x7d0f1bda38e8, aTask=...)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/ipc/glue/MessageChannel.cpp:1859
#57 0x00007d0f4160eaac in mozilla::ipc::MessageChannel::MessageTask::Run() (this=0x7d0f117af790)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/ipc/glue/MessageChannel.cpp:1890
#58 0x00007d0f408eb034 in mozilla::RunnableTask::Run() (this=0x7d0f29a3e380)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/xpcom/threads/TaskController.cpp:502
#59 0x00007d0f408ecb2c in mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&)
    (this=0x7d0f6b063c00, aProofOfLock=...) at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/xpcom/threads/TaskController.cpp:805
#60 0x00007d0f408ebd34 in mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&)
    (this=0x7d0f6b063c00, aProofOfLock=...) at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/xpcom/threads/TaskController.cpp:641
#61 0x00007d0f408eabb4 in mozilla::TaskController::ProcessPendingMTTask(bool) (this=0x7d0f6b063c00, aMayWait=true)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/xpcom/threads/TaskController.cpp:425
#62 0x00007d0f408e948c in operator()() const (__closure=0x7d0f6b0fba78)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/xpcom/threads/TaskController.cpp:138
#63 0x00007d0f4094e358 in mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::<lambda()> >::Run(void) (this=0x7d0f6b0fba60)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/xpcom/threads/nsThreadUtils.h:532
#64 0x00007d0f40904b90 in nsThread::ProcessNextEvent(bool, bool*) (this=0x7d0f6b0f01c0, aMayWait=true, aResult=0x7ed115ec07b7)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/xpcom/threads/nsThread.cpp:1152
#65 0x00007d0f4091563c in NS_ProcessNextEvent(nsIThread*, bool) (aThread=0x7d0f6b0f01c0, aMayWait=true)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/xpcom/threads/nsThreadUtils.cpp:466
#66 0x00007d0f41616234 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) (this=0x7d0f59677980, aDelegate=0x7d0f596838c0)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/ipc/glue/MessagePump.cpp:107
#67 0x00007d0f414fa338 in MessageLoop::RunInternal() (this=0x7d0f596838c0)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/ipc/chromium/src/base/message_loop.cc:331
#68 0x00007d0f414fa260 in MessageLoop::RunHandler() (this=0x7d0f596838c0)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/ipc/chromium/src/base/message_loop.cc:324
#69 0x00007d0f414fa200 in MessageLoop::Run() (this=0x7d0f596838c0)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/ipc/chromium/src/base/message_loop.cc:306
#70 0x00007d0f479070c4 in nsBaseAppShell::Run() (this=0x7d0f59628fd0)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/widget/nsBaseAppShell.cpp:137
#71 0x00007d0f49f6150c in nsAppStartup::Run() () at /usr/lib/firefox/libxul.so
#72 0x00007d0f4a1b8b38 in XREMain::XRE_mainRun() (this=0x7ed115ec1170)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/toolkit/xre/nsAppRunner.cpp:5249
#73 0x00007d0f4a1b9d24 in XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) (this=0x7ed115ec1170, argc=1, argv=0x7ed115ec19d8, aConfig=...)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/toolkit/xre/nsAppRunner.cpp:5434
#74 0x00007d0f4a1ba024 in XRE_main(int, char**, mozilla::BootstrapConfig const&) (argc=1, argv=0x7ed115ec19d8, aConfig=...)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/toolkit/xre/nsAppRunner.cpp:5493
#75 0x00007d0f4a1c5e64 in mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) (this=0x7d0f6b046690, argc=1, argv=0x7ed115ec19d8, aConfig=...)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/toolkit/xre/Bootstrap.cpp:45
#76 0x00007d0f6c578d68 in do_main(int, char**, char**) (argc=1, argv=0x7ed115ec19d8, envp=0x7ed115ec19e8)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/browser/app/nsBrowserApp.cpp:225
#77 0x00007d0f6c5792e8 in main(int, char**, char**) (argc=1, argv=0x7ed115ec19d8, envp=0x7ed115ec19e8)
    at /builds/psumbera/userland-ff-90/components/desktop/firefox/firefox-91.1.0/browser/app/nsBrowserApp.cpp:381

The Bugbug bot thinks this bug should belong to the 'Core::ImageLib' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: Untriaged → ImageLib
Product: Firefox → Core

Ok, this seems to be another occurrence of:

https://github.com/rust-lang/rust/issues/86163

See Also: → 1714064

Yes, the culprit is here passing as argument structure with doubles. Following is workaround for it:

--- firefox-91.1.0/image/decoders/nsPNGDecoder.cpp
+++ firefox-91.1.0/image/decoders/nsPNGDecoder.cpp
@@ -501,12 +501,14 @@

     png_get_gAMA(png_ptr, info_ptr, &gammaOfFile);

+#ifndef __sparc__
     mInProfile = qcms_profile_create_rgb_with_gamma(whitePoint, primaries,
                                                     1.0 / gammaOfFile);

     if (mInProfile) {
       png_set_gray_to_rgb(png_ptr);
     }
+#endif
   }

   return QCMS_INTENT_PERCEPTUAL;  // Our default
Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.