-
Bug
-
Resolution: Fixed
-
Blocker
-
3.3.5
-
None
-
None
PHPBB3-16870 introduced a regression in phpBB 3.3.5
The bug in 3.3.5 can be demonstrated with the following migration function that does nothing more than create a JSON-encoded string as a $config variable. The function works correctly in previous versions of phpBB...
public function update_data() |
|
{ return array( array('config.add', array('dd_migrationbug', '\{"A":"101a","B":"102b","C":"103c","D":"104d","E":"105e","F":"106f","G":"107g","H":"108h","I":"109i","J":"110j","K":"111k","L":"112l","M":"113m","N":"114n","O":"115o","P":"116p","Q":"117q","R":"118r","S":"119s","T":"120t"} |
'))
|
);
|
}
|
The issue is in the [c]phpbb/config/db[/c].php file. The [c]set_atomic()[/c] function now contains the following in its INSERT query:
'config_name' => $this->db->sql_escape($key), |
'config_value' => $this->db->sql_escape($new_value), |
All previous versions of phpBB contained the following:
'config_name' => $key, |
'config_value' => $new_value, |
The use of [c]sql_escape()[/c] is incorrect – the [c]sql_build_array()[/c] function also calls this function with strings, which means the string is being double-escaped.
This is creating TON of issues with extensions using migration like my example above..
Hopefully you can amend this. (or maybe revert the ticket/changes? )
Thanks!
- was caused by solution of
-
PHPBB-16870 Setting float config value can fail with CLI db:migrate
- Closed