diff --git a/src/backend/libpq/auth-scram.c b/src/backend/libpq/auth-scram.c
index 03ddddc3c2..028ec16d0d 100644
--- a/src/backend/libpq/auth-scram.c
+++ b/src/backend/libpq/auth-scram.c
@@ -608,13 +608,13 @@ parse_scram_secret(const char *secret, int *iterations,
 	 * SCRAM-SHA-256$<iterations>:<salt>$<storedkey>:<serverkey>
 	 */
 	v = pstrdup(secret);
-	if ((scheme_str = strsep(&v, "$")) == NULL)
+	if ((scheme_str = strsep(&v, "$")) == NULL || v == NULL )
 		goto invalid_secret;
-	if ((iterations_str = strsep(&v, ":")) == NULL)
+	if ((iterations_str = strsep(&v, ":")) == NULL || v == NULL)
 		goto invalid_secret;
-	if ((salt_str = strsep(&v, "$")) == NULL)
+	if ((salt_str = strsep(&v, "$")) == NULL || v == NULL)
 		goto invalid_secret;
-	if ((storedkey_str = strsep(&v, ":")) == NULL)
+	if ((storedkey_str = strsep(&v, ":")) == NULL || v == NULL)
 		goto invalid_secret;
 	serverkey_str = v;
 
