Bluetooth: BAP: SD: Added missing bad code when using mod_src

When the encrypt state was changed via
bt_bap_scan_delegator_mod_src then we didn't set the bad
broadcast code correctly.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
diff --git a/subsys/bluetooth/audio/bap_scan_delegator.c b/subsys/bluetooth/audio/bap_scan_delegator.c
index 191edda..c13da60 100644
--- a/subsys/bluetooth/audio/bap_scan_delegator.c
+++ b/subsys/bluetooth/audio/bap_scan_delegator.c
@@ -1469,6 +1469,12 @@
 
 	if (state->encrypt_state != param->encrypt_state) {
 		state->encrypt_state = param->encrypt_state;
+
+		if (state->encrypt_state == BT_BAP_BIG_ENC_STATE_BAD_CODE) {
+			(void)memcpy(state->bad_code, internal_state->broadcast_code,
+				     sizeof(internal_state->state.bad_code));
+		}
+
 		state_changed = true;
 	}
 
diff --git a/tests/bsim/bluetooth/audio/src/bap_broadcast_assistant_test.c b/tests/bsim/bluetooth/audio/src/bap_broadcast_assistant_test.c
index f46fd50..0a4e4b2 100644
--- a/tests/bsim/bluetooth/audio/src/bap_broadcast_assistant_test.c
+++ b/tests/bsim/bluetooth/audio/src/bap_broadcast_assistant_test.c
@@ -142,7 +142,11 @@
 		SET_FLAG(flag_broadcast_code_requested);
 	} else if (state->encrypt_state == BT_BAP_BIG_ENC_STATE_BAD_CODE) {
 		SET_FLAG(flag_incorrect_broadcast_code);
-		return;
+		if (memcmp(state->bad_code, INCORRECT_BROADCAST_CODE,
+			   BT_AUDIO_BROADCAST_CODE_SIZE) != 0) {
+			FAIL("Bad code is not what we sent");
+			return;
+		}
 	}
 
 	for (uint8_t i = 0; i < state->num_subgroups; i++) {