From 440d8d82d6809d02d47009b595fdd266c182da86 Mon Sep 17 00:00:00 2001 From: Milanka Ringwald Date: Tue, 5 May 2020 11:20:01 +0200 Subject: [PATCH] avdtp: return ERROR_CODE_COMMAND_DISALLOWED, if start streaming is called twice in a row, return the same status for stop/suspend/abort instead of ERROR_CODE_SUCCESS --- src/classic/avdtp.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/classic/avdtp.c b/src/classic/avdtp.c index 9c930221b..32e9e9b18 100644 --- a/src/classic/avdtp.c +++ b/src/classic/avdtp.c @@ -823,6 +823,10 @@ uint8_t avdtp_start_stream(uint16_t avdtp_cid, uint8_t local_seid, avdtp_context return AVDTP_SEID_DOES_NOT_EXIST; } + if (!is_avdtp_remote_seid_registered(stream_endpoint) || stream_endpoint->start_stream == 1){ + return ERROR_CODE_COMMAND_DISALLOWED; + } + stream_endpoint->start_stream = 1; connection->initiator_local_seid = local_seid; connection->initiator_remote_seid = stream_endpoint->remote_sep.seid; @@ -849,7 +853,7 @@ uint8_t avdtp_stop_stream(uint16_t avdtp_cid, uint8_t local_seid, avdtp_context_ } if (!is_avdtp_remote_seid_registered(stream_endpoint) || stream_endpoint->stop_stream){ - return ERROR_CODE_SUCCESS; + return ERROR_CODE_COMMAND_DISALLOWED; } stream_endpoint->stop_stream = 1; @@ -878,7 +882,7 @@ uint8_t avdtp_abort_stream(uint16_t avdtp_cid, uint8_t local_seid, avdtp_context } if (!is_avdtp_remote_seid_registered(stream_endpoint) || stream_endpoint->abort_stream){ - return ERROR_CODE_SUCCESS; + return ERROR_CODE_COMMAND_DISALLOWED; } stream_endpoint->abort_stream = 1; @@ -906,7 +910,7 @@ uint8_t avdtp_suspend_stream(uint16_t avdtp_cid, uint8_t local_seid, avdtp_conte } if (!is_avdtp_remote_seid_registered(stream_endpoint) || stream_endpoint->suspend_stream){ - return ERROR_CODE_SUCCESS; + return ERROR_CODE_COMMAND_DISALLOWED; } stream_endpoint->suspend_stream = 1;