Commit 9611dc39 authored by Artsiom Koltun's avatar Artsiom Koltun Committed by Jim Harris
Browse files

posix: check psk identity for NULL in psk callbacks



psk_identity should be checked for NULL before any operations on it
are performed. Otherwise, segfault happens.

Change-Id: If69703e253c3a70d4e0abfa29c55e47061d13559
Signed-off-by: default avatarArtsiom Koltun <artsiom.koltun@intel.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26724


Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJacek Kalwas <jacek.kalwas@nutanix.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
parent 4bd98e71
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -543,6 +543,11 @@ posix_sock_psk_find_session_server_cb(SSL *ssl, const unsigned char *identity,
			return 0;
		}

		if (impl_opts->psk_identity == NULL) {
			SPDK_ERRLOG("PSK identity is not set\n");
			return 0;
		}

		SPDK_DEBUGLOG(sock_posix, "Length of Client's PSK ID %lu\n", strlen(impl_opts->psk_identity));
		if (strcmp(impl_opts->psk_identity, identity) != 0) {
			SPDK_ERRLOG("Unknown Client's PSK ID\n");
@@ -629,6 +634,11 @@ posix_sock_psk_use_session_client_cb(SSL *ssl, const EVP_MD *md, const unsigned
	}
	keylen = impl_opts->psk_key_size;

	if (impl_opts->psk_identity == NULL) {
		SPDK_ERRLOG("PSK identity is not set\n");
		return 0;
	}

	if (impl_opts->tls_cipher_suites == NULL) {
		SPDK_ERRLOG("Cipher suite not set\n");
		return 0;