Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit ac50f84

Browse files
committed
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.
1 parent 10fb48d commit ac50f84

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/backend/catalog/objectaddress.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1831,7 +1831,7 @@ textarray_to_strvaluelist(ArrayType *arr)
18311831
Datum
18321832
pg_get_object_address(PG_FUNCTION_ARGS)
18331833
{
1834-
char *ttype = TextDatumGetCString(PG_GETARG_TEXT_P(0));
1834+
char *ttype = TextDatumGetCString(PG_GETARG_DATUM(0));
18351835
ArrayType *namearr = PG_GETARG_ARRAYTYPE_P(1);
18361836
ArrayType *argsarr = PG_GETARG_ARRAYTYPE_P(2);
18371837
int itype;

0 commit comments

Comments
 (0)