Opened 14 years ago
Closed 13 years ago
#12560 closed defect (bug) (fixed)
occasional blog option corruption for serialized values
Reported by: |
|
Owned by: |
|
---|---|---|---|
Milestone: | 3.1 | Priority: | low |
Severity: | normal | Version: | 3.0.1 |
Component: | Warnings/Notices | Keywords: | has-patch |
Focuses: | multisite | Cc: |
Description
get_blog_option sometimes / randomly returns nothing and corrupts/wipes out the entry for a serialized value. Seen as far back as WPMU 2.8, so this has been around. Traced it down to the call to unserialize - changed it to maybe_unserialize and the issue went away.
A patch for trunk is attached. Has only been tested on one installation.
Attachments (3)
Change History (10)
#1
@
14 years ago
- Component changed from Multisite to Charset
- Keywords needs-patch added; has-patch removed
- Milestone changed from 3.0 to Future Release
- Owner set to hakre
#3
@
13 years ago
- Component changed from Charset to Warnings/Notices
- Severity changed from minor to normal
- Version changed from 3.0 to 3.0.1
I am also not able to retrieve an array saved as an option.
Warning: stripslashes() expects parameter 1 to be string, array given in /wordpress-3.0.1/wp-includes/ms-blogs.php on line 340
This is clearly a bug which needs to be handled. See get_blog_option_unserialize_patch.2.diff for a possible solution.
#4
@
13 years ago
The very simple solution would be to *not* use
if (! @unserialize( $value ) ) $value = stripslashes( $value );
but
if (is_scalar( $value ) ) $value = stripslashes( $value );
Note: See
TracTickets for help on using
tickets.
patch is invalid. this is generally due to charset problems. WP is not multibyte safe, and neither are the underlying php functions.
punting this to future, since it'll probably never get solved before we get php6