[PATCH] Sanity check BackgroundWorker's function entry

Adam Lee <adam8157@gmail.com>

From: Adam Lee <adam8157@gmail.com>
To:
Date: 2020-02-11T05:50:35Z
Lists: pgsql-hackers
Without this, the error we got would be "can not find file/function" in
the load_external_function(), which is not obvious enough.
---
 src/backend/postmaster/bgworker.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c
index 75fc0d5d33..85f5d84783 100644
--- a/src/backend/postmaster/bgworker.c
+++ b/src/backend/postmaster/bgworker.c
@@ -637,6 +637,14 @@ SanityCheckBackgroundWorker(BackgroundWorker *worker, int elevel)
 	if (strcmp(worker->bgw_type, "") == 0)
 		strcpy(worker->bgw_type, worker->bgw_name);
 
+	if (!worker->bgw_library_name[0] || !worker->bgw_function_name[0])
+	{
+		ereport(elevel,
+			(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+			 errmsg("background worker: invalid entry function")));
+		return false;
+	}
+
 	return true;
 }
 
-- 
2.25.0


--DocE+STaALJfprDB--