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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions