Opened 11 years ago
Closed 11 years ago
#24639 closed defect (bug) (fixed)
search_theme_directories returns nothing if scandir() returns FALSE
Reported by: | csixty4 | Owned by: | nacin |
---|---|---|---|
Milestone: | 3.7 | Priority: | normal |
Severity: | normal | Version: | 3.6 |
Component: | Themes | Keywords: | has-patch commit 3.7-early |
Focuses: | Cc: |
Description
I'm experimenting with ways to detect themes & plugins WordPress can't upgrade automatically, and found that wp_get_themes() (wp-includes/theme.php) returns an empty array if one of the theme directories is unreadable (chmod 770, neither owner or group exist).
Currently, the search_theme_directories() function returns false if any scandir() calls return false. Shouldn't it return a list of valid themes it can access, ignoring the ones it can't?
The attached patch issues a "continue" statement if scandir() returns false, so at least some information is returned. It isn't enough to help me detect those cases where a theme can't be updated, but it's probably more useful for people who need a list of themes.
Attachments (2)
Change History (7)
#1
@
11 years ago
I wrote this code, and yes, this is a good change. Maybe we should do a trigger_error() with E_USER_NOTICE whenever we can't read a directory we're supposedly to read?
#2
@
11 years ago
Thanks! The patch works for me, and I should be able to intercept that notice with an error_handler. That's better than I was hoping for.
continue instead of returning false when scandir() returns false