Skip to content

Media: guard attachment icon size lookup#11613

Open
dhrupo wants to merge 1 commit intoWordPress:trunkfrom
dhrupo:ticket-64742-guard-attachment-icon-size
Open

Media: guard attachment icon size lookup#11613
dhrupo wants to merge 1 commit intoWordPress:trunkfrom
dhrupo:ticket-64742-guard-attachment-icon-size

Conversation

@dhrupo
Copy link
Copy Markdown

@dhrupo dhrupo commented Apr 21, 2026

Summary

Guard the icon fallback path in wp_get_attachment_image_src() when wp_getimagesize() cannot read the icon file.

Problem

When wp_get_attachment_image_src() falls back to a mime type icon, it assumes wp_getimagesize() returns an array and immediately reads width and height from it. If the icon file cannot be read, PHP 8.5 surfaces incorrect array access on that falsey return value.

Trac ticket: https://core.trac.wordpress.org/ticket/64742

Solution

Store the result of wp_getimagesize() first and only read width and height when it returns an array. This preserves the existing false return behavior when the icon dimensions cannot be determined.

Testing

Added a PHPUnit regression test that forces the mime type icon path to point at a missing icon file and verifies wp_get_attachment_image_src() returns false cleanly.

Verified in the configured local wordpress-develop environment with:

  • node ./tools/local-env/scripts/docker.js exec --user wp_php php ./vendor/bin/phpunit --filter test_wp_get_attachment_image_src_with_icon_when_icon_file_size_cannot_be_read tests/phpunit/tests/media.php
  • node ./tools/local-env/scripts/docker.js exec --user wp_php php ./vendor/bin/phpunit --filter 'test_wp_get_attachment_image_(url|src_with_icon_when_icon_file_size_cannot_be_read)' tests/phpunit/tests/media.php

@github-actions
Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Core Committers: Use this line as a base for the props when committing in SVN:

Props dhrupo.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@dhrupo dhrupo force-pushed the ticket-64742-guard-attachment-icon-size branch from e220135 to 3496f8b Compare April 21, 2026 06:56
@github-actions
Copy link
Copy Markdown

Test using WordPress Playground

The changes in this pull request can previewed and tested using a WordPress Playground instance.

WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser.

Some things to be aware of

  • All changes will be lost when closing a tab with a Playground instance.
  • All changes will be lost when refreshing the page.
  • A fresh instance is created each time the link below is clicked.
  • Every time this pull request is updated, a new ZIP file containing all changes is created. If changes are not reflected in the Playground instance,
    it's possible that the most recent build failed, or has not completed. Check the list of workflow runs to be sure.

For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation.

Test this pull request with WordPress Playground.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant