Skip to content

Crash when viewing images with extreme dimensions #508

@Razyru

Description

@Razyru

Issue explanation (write below this line)

I was trying to open png files with unusual dimensions: 4352x116, 4458x120, and 5312x80. Each of these images crashed the app. The images aren't corrupt because they can be opened in a photo editor.

Exception

  • App Name: Amaze File Utilities
  • Package: com.amaze.fileutilities
  • Version: v1.94
  • User Action: UI Error
  • Request: Application crash
  • OS: Linux Android 13 - 33
  • Device: sunfish
  • Model: Pixel 4a
  • Product: sunfish
  • Device ID: c9844850cd05979a55af0952c63442caec6c0c1ed96a8821621d28fdb4d1c0e8
Crash log
java.lang.RuntimeException: Canvas: trying to draw too large(181583600bytes) bitmap.
	at android.graphics.RecordingCanvas.throwIfCannotDraw(RecordingCanvas.java:266)
	at android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:94)
	at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:549)
	at android.widget.ImageView.onDraw(ImageView.java:1446)
	at android.view.View.draw(View.java:23266)
	at android.view.View.updateDisplayListIfDirty(View.java:22133)
	at android.view.View.draw(View.java:22997)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
	at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:137)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
	at android.view.View.updateDisplayListIfDirty(View.java:22124)
	at android.view.View.draw(View.java:22997)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
	at androidx.fragment.app.FragmentContainerView.drawChild(FragmentContainerView.kt:35)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
	at androidx.fragment.app.FragmentContainerView.dispatchDraw(FragmentContainerView.kt:36)
	at android.view.View.updateDisplayListIfDirty(View.java:22124)
	at android.view.View.draw(View.java:22997)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
	at android.view.View.updateDisplayListIfDirty(View.java:22124)
	at android.view.View.draw(View.java:22997)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
	at android.view.View.updateDisplayListIfDirty(View.java:22124)
	at android.view.View.draw(View.java:22997)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
	at android.view.View.updateDisplayListIfDirty(View.java:22124)
	at android.view.View.draw(View.java:22997)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
	at android.view.View.updateDisplayListIfDirty(View.java:22124)
	at android.view.View.draw(View.java:22997)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
	at android.view.View.draw(View.java:23269)
	at com.android.internal.policy.DecorView.draw(DecorView.java:821)
	at android.view.View.updateDisplayListIfDirty(View.java:22133)
	at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:689)
	at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:695)
	at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:793)
	at android.view.ViewRootImpl.draw(ViewRootImpl.java:4789)
	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4500)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3687)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2371)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9297)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239)
	at android.view.Choreographer.doCallbacks(Choreographer.java:899)
	at android.view.Choreographer.doFrame(Choreographer.java:832)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214)
	at android.os.Handler.handleCallback(Handler.java:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.app.ActivityThread.main(ActivityThread.java:7918)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions