mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
Fix misuse of TextDatumGetCString().
"TextDatumGetCString(PG_GETARG_TEXT_P(x))" is formally wrong: a text* is not a Datum. Although this coding will accidentally fail to fail on all known platforms, it risks leaking memory if a detoast step is needed, unlike "TextDatumGetCString(PG_GETARG_DATUM(x))" which is what's used elsewhere. Make pg_get_object_address() fall in line with other uses. Noted while reviewing two-arg current_setting() patch.
This commit is contained in:
@ -1831,7 +1831,7 @@ textarray_to_strvaluelist(ArrayType *arr)
|
|||||||
Datum
|
Datum
|
||||||
pg_get_object_address(PG_FUNCTION_ARGS)
|
pg_get_object_address(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
char *ttype = TextDatumGetCString(PG_GETARG_TEXT_P(0));
|
char *ttype = TextDatumGetCString(PG_GETARG_DATUM(0));
|
||||||
ArrayType *namearr = PG_GETARG_ARRAYTYPE_P(1);
|
ArrayType *namearr = PG_GETARG_ARRAYTYPE_P(1);
|
||||||
ArrayType *argsarr = PG_GETARG_ARRAYTYPE_P(2);
|
ArrayType *argsarr = PG_GETARG_ARRAYTYPE_P(2);
|
||||||
int itype;
|
int itype;
|
||||||
|
Reference in New Issue
Block a user