Page MenuHomePhabricator

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

Authored by epriestley on Nov 7 2018, 12:23 AM.
Tags
None
Referenced Files
F15404342: D19781.id47247.diff
Tue, Mar 18, 7:16 AM
F15394607: D19781.id47247.diff
Sat, Mar 15, 11:57 PM
F15381711: D19781.diff
Fri, Mar 14, 9:01 AM
Unknown Object (File)
Fri, Feb 28, 4:57 PM
Unknown Object (File)
Feb 19 2025, 6:26 PM
Unknown Object (File)
Feb 9 2025, 1:37 PM
Unknown Object (File)
Feb 9 2025, 1:36 PM
Unknown Object (File)
Feb 9 2025, 1:36 PM
Subscribers
None

Details

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.

Diff Detail

Repository
rPHU libphutil
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

amckinley added inline comments.
src/xsprintf/qsprintf.php
200

Worth adding a "TODO" here to clean up later? Or is the conversion for this going to be effectively endless?

This revision is now accepted and ready to land.Nov 7 2018, 8:27 PM