Bluetooth: fix null ptr deref on hci_sync_conn_complete_evt
[platform/kernel/linux-rpi.git] / net / rxrpc / server_key.c
index ead3471..ee269e0 100644 (file)
@@ -84,6 +84,9 @@ static int rxrpc_preparse_s(struct key_preparsed_payload *prep)
 
        prep->payload.data[1] = (struct rxrpc_security *)sec;
 
+       if (!sec->preparse_server_key)
+               return -EINVAL;
+
        return sec->preparse_server_key(prep);
 }
 
@@ -91,7 +94,7 @@ static void rxrpc_free_preparse_s(struct key_preparsed_payload *prep)
 {
        const struct rxrpc_security *sec = prep->payload.data[1];
 
-       if (sec)
+       if (sec && sec->free_preparse_server_key)
                sec->free_preparse_server_key(prep);
 }
 
@@ -99,7 +102,7 @@ static void rxrpc_destroy_s(struct key *key)
 {
        const struct rxrpc_security *sec = key->payload.data[1];
 
-       if (sec)
+       if (sec && sec->destroy_server_key)
                sec->destroy_server_key(key);
 }