Convert Phabricator to handle "%s" / "%B" properly

Summary:
Ref T1191. I believe we only have three meaningful binary fields across all applications:

  - The general cache may contain gzipped content.
  - The file storage blob may contain arbitrary binary content.
  - The Passphrase secret can store arbitrary binary data (although it currently never does).

This adds Lisk config for binary fields, and uses `%B` where necessary.

Test Plan:
  - Added and executed unit tests.
  - Forced file uploads to use MySQL, uploaded binaries.
  - Disabled the CONFIG_BINARY on the file storage blob and tried again, got an appropraite failure.
  - Tried to register with an account containing a G-Clef, and was stopped before the insert.

Reviewers: btrahan, arice

Reviewed By: arice

CC: arice, chad, aran

Maniphest Tasks: T1191

Differential Revision: https://secure.phabricator.com/D8316
This commit is contained in:
epriestley
2014-02-23 16:20:46 -08:00
parent 70b008d18d
commit a298a79bda
9 changed files with 88 additions and 39 deletions

View File

@@ -19,7 +19,7 @@ final class PhabricatorKeyValueDatabaseCache
$sql[] = qsprintf(
$conn_w,
'(%s, %s, %s, %s, %d, %nd)',
'(%s, %s, %s, %B, %d, %nd)',
$hash,
$key,
$format,