Opened 6 months ago

Last modified 6 months ago

#22630 new defect (bug)

plugin_basename() fails on case-sensitive plugin directories

Reported by: bungeshea Owned by:
Priority: normal Milestone: Awaiting Review
Component: General Version: 1.5
Severity: minor Keywords:
Cc:

Description

When WP_PLUGIN_DIR has slightly different casing to the actual path, plugin_basename() returns the full path to the plugin file.

For example:

If WP_PLUGIN_DIR is set to C:/Website/wp-content/plugins, but the actual file-system path is C:/Website/wp-content/Plugins, plugin_basename() will return the full path to the plugin file.

The plugin_basename() function uses a preg_replace statement to find path to the plugin relative from WP_PLUGIN_DIR. If the actual path to the plugin directory does not match case to WP_PLUGIN_DIR, the preg_replace will fail. This is because preg_replace is not case sensitive.

Change History (2)

comment:1 in reply to: ↑ description   rmccue6 months ago

Replying to bungeshea:

The plugin_basename() function uses a preg_replace statement to find path to the plugin relative from WP_PLUGIN_DIR. If the actual path to the plugin directory does not match case to WP_PLUGIN_DIR, the preg_replace will fail. This is because preg_replace is not case sensitive.

I think you mean it is case sensitive. This makes sense, since on every platform except Windows, paths are case sensitive.

Maybe this could be changed to be insensitive on Windows, but for most platforms, this is the correct behaviour.

Last edited 6 months ago by rmccue (previous) (diff)
  • Severity changed from normal to minor
  • Version changed from trunk to 1.5
Note: See TracTickets for help on using tickets.