HomePhabricator

Make qsprintf() return an object, not a string, to support %P and hardening of…

Description

Make qsprintf() return an object, not a string, to support %P and hardening of %Q

Summary:
Ref T13217. Ref T13216. Previously, we changed csprintf() to return an object instead of a string to support %P for passwords. Prepare for a %P for qsprintf(...) too. T13217 discusses general plans here, although %P, %LA, %LO, and %LQ are not implemented yet.

This may be a little rocky, but the csprintf() change was generally fairly straightforward so I have reasonably high hopes about this one not being too terribly painful.

Test Plan: Loaded a Phabricator page -- which now generates hundreds of "unsafe query construction" errors, but still works.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13217, T13216

Differential Revision: https://secure.phabricator.com/D19781