From f084b79a4b53cc84495eb987b6a38c5731a6e115 Mon Sep 17 00:00:00 2001 From: manaldush Date: Fri, 4 Apr 2025 16:03:41 +0300 Subject: [PATCH] AddressSanitizer: stack-use-after-scope on address in CreateBackgroundJob (#7949) Var jobTypeName is created on stack and its value over pointer is used in heap_form_tuple, so we have stack use out of scope. Issue was detected with adress sanitizer. Fixes #7943. --- src/backend/distributed/metadata/metadata_utility.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/distributed/metadata/metadata_utility.c b/src/backend/distributed/metadata/metadata_utility.c index 6d8ed0808..0c3dbbda3 100644 --- a/src/backend/distributed/metadata/metadata_utility.c +++ b/src/backend/distributed/metadata/metadata_utility.c @@ -3024,6 +3024,8 @@ CreateBackgroundJob(const char *jobType, const char *description) /* insert new job */ Datum values[Natts_pg_dist_background_job] = { 0 }; bool isnull[Natts_pg_dist_background_job] = { 0 }; + + NameData jobTypeName = { 0 }; memset(isnull, true, sizeof(isnull)); int64 jobId = GetNextBackgroundJobsJobId(); @@ -3036,7 +3038,6 @@ CreateBackgroundJob(const char *jobType, const char *description) if (jobType) { - NameData jobTypeName = { 0 }; namestrcpy(&jobTypeName, jobType); InitFieldValue(Anum_pg_dist_background_job_job_type, values, isnull, NameGetDatum(&jobTypeName));