WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED INVALID
118497
Leak: PNGImageDecoder::decode
https://bugs.webkit.org/show_bug.cgi?id=118497
Summary
Leak: PNGImageDecoder::decode
Brian Holt
Reported
2013-07-09 01:54:55 PDT
Leak in Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp:122 Command: /home/likewise-open/SERILOCAL/brian.holt/Code/gnome3/WebKit/WebKitBuild/Debug/Programs/DumpRenderTree - Leak_StillReachable 16,119 bytes in 7 blocks are still reachable in loss record 1,118 of 1,176 malloc (/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) png_malloc (/lib/x86_64-linux-gnu/libpng12.so.0.49.0) png_create_read_struct_2 (/lib/x86_64-linux-gnu/libpng12.so.0.49.0) png_create_read_struct (/lib/x86_64-linux-gnu/libpng12.so.0.49.0) WebCore::PNGImageReader::PNGImageReader(WebCore::PNGImageDecoder*) (/WebKitBuild/Debug/../../Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp:122) WebCore::PNGImageDecoder::decode(bool) (/WebKitBuild/Debug/../../Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp:573) WebCore::PNGImageDecoder::isSizeAvailable() (/WebKitBuild/Debug/../../Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp:237) WebCore::ImageSource::isSizeAvailable() (/WebKitBuild/Debug/../../Source/WebCore/platform/graphics/ImageSource.cpp:99) WebCore::BitmapImage::isSizeAvailable() (/WebKitBuild/Debug/../../Source/WebCore/platform/graphics/BitmapImage.cpp:283) WebCore::BitmapImage::dataChanged(bool) (/WebKitBuild/Debug/../../Source/WebCore/platform/graphics/BitmapImage.cpp:257) WebCore::Image::setData(WTF::PassRefPtr<WebCore::SharedBuffer>, bool) (/WebKitBuild/Debug/../../Source/WebCore/platform/graphics/Image.cpp:79) WebCore::loadImageFromFile(WTF::CString) (/WebKitBuild/Debug/../../Source/WebCore/platform/graphics/gtk/ImageGtk.cpp:85) WebCore::Image::loadPlatformResource(char const*) (/WebKitBuild/Debug/../../Source/WebCore/platform/graphics/gtk/ImageGtk.cpp:101) WebCore::CachedImage::brokenImage(float) const (/WebKitBuild/Debug/../../Source/WebCore/loader/cache/CachedImage.cpp:149) WebCore::CachedImage::imageForRenderer(WebCore::RenderObject const*) (/WebKitBuild/Debug/../../Source/WebCore/loader/cache/CachedImage.cpp:183) WebCore::RenderImage::setImageSizeForAltText(WebCore::CachedImage*) (/WebKitBuild/Debug/../../Source/WebCore/rendering/RenderImage.cpp:118) WebCore::RenderImage::imageChanged(void*, WebCore::IntRect const*) (/WebKitBuild/Debug/../../Source/WebCore/rendering/RenderImage.cpp:193) WebCore::RenderObject::imageChanged(WebCore::CachedImage*, WebCore::IntRect const*) (/WebKitBuild/Debug/../../Source/WebCore/rendering/RenderObject.cpp:3041) WebCore::CachedImage::notifyObservers(WebCore::IntRect const*) (/WebKitBuild/Debug/../../Source/WebCore/loader/cache/CachedImage.cpp:290) WebCore::CachedImage::error(WebCore::CachedResource::Status) (/WebKitBuild/Debug/../../Source/WebCore/loader/cache/CachedImage.cpp:436) WebCore::SubresourceLoader::didFail(WebCore::ResourceError const&) (/WebKitBuild/Debug/../../Source/WebCore/loader/SubresourceLoader.cpp:311) WebCore::ResourceLoader::didFail(WebCore::ResourceHandle*, WebCore::ResourceError const&) (/WebKitBuild/Debug/../../Source/WebCore/loader/ResourceLoader.cpp:495) WebCore::sendRequestCallback(_GObject*, _GAsyncResult*, void*) (/WebKitBuild/Debug/../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:675) g_task_return_now (/WebKitBuild/Dependencies/Source/glib-2.36.0/gio/gtask.c:1105) complete_in_idle_cb (/WebKitBuild/Dependencies/Source/glib-2.36.0/gio/gtask.c:1114) g_main_context_dispatch (/WebKitBuild/Dependencies/Source/glib-2.36.0/glib/gmain.c:3054) g_main_context_iterate.isra.22 (/WebKitBuild/Dependencies/Source/glib-2.36.0/glib/gmain.c:3701) g_main_loop_run (/WebKitBuild/Dependencies/Source/glib-2.36.0/glib/gmain.c:3895) gtk_main (/WebKitBuild/Dependencies/Source/gtk+-3.6.0/gtk/gtkmain.c:1163) runTest(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/WebKitBuild/Debug/../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:769) Suppression (error hash=#D378470C27AE48D2#): For more info on using suppressions see
http://dev.chromium.org/developers/tree-sheriffs/sheriff-details-chromium/memory-sheriff#TOC-Suppressing-memory-reports
{ <insert_a_suppression_name_here> Memcheck:Leak fun:malloc fun:png_malloc fun:png_create_read_struct_2 fun:png_create_read_struct fun:_ZN7WebCore14PNGImageReaderC1EPNS_15PNGImageDecoderE fun:_ZN7WebCore15PNGImageDecoder6decodeEb fun:_ZN7WebCore15PNGImageDecoder15isSizeAvailableEv fun:_ZN7WebCore11ImageSource15isSizeAvailableEv fun:_ZN7WebCore11BitmapImage15isSizeAvailableEv fun:_ZN7WebCore11BitmapImage11dataChangedEb fun:_ZN7WebCore5Image7setDataEN3WTF10PassRefPtrINS_12SharedBufferEEEb fun:_ZN7WebCore17loadImageFromFileEN3WTF7CStringE fun:_ZN7WebCore5Image20loadPlatformResourceEPKc fun:_ZNK7WebCore11CachedImage11brokenImageEf fun:_ZN7WebCore11CachedImage16imageForRendererEPKNS_12RenderObjectE fun:_ZN7WebCore11RenderImage22setImageSizeForAltTextEPNS_11CachedImageE fun:_ZN7WebCore11RenderImage12imageChangedEPvPKNS_7IntRectE fun:_ZN7WebCore12RenderObject12imageChangedEPNS_11CachedImageEPKNS_7IntRectE fun:_ZN7WebCore11CachedImage15notifyObserversEPKNS_7IntRectE fun:_ZN7WebCore11CachedImage5errorENS_14CachedResource6StatusE fun:_ZN7WebCore17SubresourceLoader7didFailERKNS_13ResourceErrorE fun:_ZN7WebCore14ResourceLoader7didFailEPNS_14ResourceHandleERKNS_13ResourceErrorE }
Attachments
Add attachment
proposed patch, testcase, etc.
Anton Obzhirov
Comment 1
2013-07-09 01:58:03 PDT
I'll have a look - looks interesting.
Anton Obzhirov
Comment 2
2013-07-09 04:14:05 PDT
(In reply to
comment #1
)
> I'll have a look - looks interesting.
It looks like false positive. See at the end of void PNGImageDecoder::decode(bool onlySize) // If we're done decoding the image, we don't need the PNGImageReader // anymore. (If we failed, |m_reader| has already been cleared.) else if (isComplete()) m_reader.clear(); png structure gets cleaned after reader is deleted or closed.
Brian Holt
Comment 3
2013-07-09 07:39:02 PDT
Marking as invalid since the leak level is Leak_StillReachable and is not definitely a leak.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug