Skip to content

Commit 1b2512a

Browse files
committed
Remove noop from change key provider
GetKeyProviderByName() will not be able to find a match if the name it's supposed to search for is longer than allowed.
1 parent 9fe8426 commit 1b2512a

File tree

1 file changed

+2
-9
lines changed

1 file changed

+2
-9
lines changed

contrib/pg_tde/src/catalog/tde_keyring.c

+2-9
Original file line numberDiff line numberDiff line change
@@ -213,19 +213,12 @@ pg_tde_change_key_provider_internal(PG_FUNCTION_ARGS, Oid dbOid)
213213
char *provider_type = text_to_cstring(PG_GETARG_TEXT_PP(0));
214214
char *provider_name = text_to_cstring(PG_GETARG_TEXT_PP(1));
215215
char *options = text_to_cstring(PG_GETARG_TEXT_PP(2));
216-
int nlen,
217-
olen;
216+
int olen;
218217
KeyringProviderRecord provider;
219218

220219
/* reports error if not found */
221220
GenericKeyring *keyring = GetKeyProviderByName(provider_name, dbOid);
222221

223-
nlen = strlen(provider_name);
224-
if (nlen >= sizeof(provider.provider_name))
225-
ereport(ERROR,
226-
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
227-
errmsg("too long provider name, maximum length is %ld bytes", sizeof(provider.provider_name) - 1));
228-
229222
olen = strlen(options);
230223
if (olen >= sizeof(provider.options))
231224
ereport(ERROR,
@@ -235,7 +228,7 @@ pg_tde_change_key_provider_internal(PG_FUNCTION_ARGS, Oid dbOid)
235228
/* Struct will be saved to disk so keep clean */
236229
memset(&provider, 0, sizeof(provider));
237230
provider.provider_id = keyring->keyring_id;
238-
memcpy(provider.provider_name, provider_name, nlen);
231+
memcpy(provider.provider_name, provider_name, strlen(provider_name));
239232
memcpy(provider.options, options, olen);
240233
provider.provider_type = get_keyring_provider_from_typename(provider_type);
241234

0 commit comments

Comments
 (0)