diff --git a/doc/xml/release.xml b/doc/xml/release.xml index 646cb4b2f..b641d0c91 100644 --- a/doc/xml/release.xml +++ b/doc/xml/release.xml @@ -29,6 +29,18 @@

Allow global as a stanza prefix.

+ + + + + + + + + + +

Fix segfault on invalid GCS key file.

+
@@ -10376,6 +10388,11 @@ crunchyheath + + Henrik Feldt + haf + + Ibrahim Edib Kokdemir Edib diff --git a/src/storage/gcs/storage.c b/src/storage/gcs/storage.c index b4047848b..7975b9a15 100644 --- a/src/storage/gcs/storage.c +++ b/src/storage/gcs/storage.c @@ -966,7 +966,11 @@ storageGcsNew( KeyValue *kvKey = jsonToKv(strNewBuf(storageGetP(storageNewReadP(storagePosixNewP(FSLASH_STR), key)))); driver->credential = varStr(kvGet(kvKey, GCS_JSON_CLIENT_EMAIL_VAR)); driver->privateKey = varStr(kvGet(kvKey, GCS_JSON_PRIVATE_KEY_VAR)); - driver->authUrl = httpUrlNewParseP(varStr(kvGet(kvKey, GCS_JSON_TOKEN_URI_VAR)), .type = httpProtocolTypeHttps); + const String *const uri = varStr(kvGet(kvKey, GCS_JSON_TOKEN_URI_VAR)); + + CHECK(driver->credential != NULL && driver->privateKey != NULL && uri != NULL); + + driver->authUrl = httpUrlNewParseP(uri, .type = httpProtocolTypeHttps); driver->authClient = httpClientNew( tlsClientNew(