On Wed, Jun 30, 2021 at 03:47:19PM +0000, Jacob Champion wrote: > On Wed, 2021-06-30 at 11:03 -0400, Tom Lane wrote: >> It does not look to me like json_errdetail can sensibly be used in >> frontend, since it returns palloc'd strings in some paths and >> constants in others. There'd be no way to avoid a memory leak >> in a frontend usage. So I think the dependency on psprintf there >> is not really a problem, but maybe we should make the entire function >> "#ifndef FRONTEND" to clarify the intended usage and avoid building >> useless code into clients.
That sounds sensible from here. One thing to be aware of is json_parse_manifest() in pg_verifybackup that uses it, but we could just replace the error by a plain "failed to parse manifest"". Backup manifests are generated by the backend, so failures should not happen there anyway. > FWIW this is one of the fixes (patch 0002) in the JSON-for-libpq thread > [1]. It ensures that all returned error strings are freeable by the > caller. That in turn was the impetus for the asprintf port suggestion. Yes. > But until/unless that is changed, an #ifndef seems like a good way to > prevent issues for the current code. Sounds sensible to do that as well for 14 before the release. Any thoughts about that? -- Michael
signature.asc
Description: PGP signature