Diff between 4b9b09235ead46029da25f12a20fa6b993bb924f and 6e01436e9b09b038c358b0695548a7a2c3059bdb

Changed Files

File Additions Deletions Status
android/avdtp.c +4 -3 modified

Full Patch

diff --git a/android/avdtp.c b/android/avdtp.c
index 89f4860..85ef94b 100644
--- a/android/avdtp.c
+++ b/android/avdtp.c
@@ -3244,14 +3244,15 @@ int avdtp_close(struct avdtp *session, struct avdtp_stream *stream,
 	if (!g_slist_find(session->streams, stream))
 		return -EINVAL;
 
-	if (stream->lsep->state < AVDTP_STATE_OPEN)
-		return -EINVAL;
-
 	if (stream->close_int == TRUE) {
 		error("avdtp_close: rejecting since close is already initiated");
 		return -EINVAL;
 	}
 
+	/* If stream is not yet in the OPEN state, let's use ABORT_CMD */
+	if (stream->lsep->state < AVDTP_STATE_OPEN)
+		return avdtp_abort(session, stream);
+
 	if (immediate && session->req && stream == session->req->stream)
 		return avdtp_abort(session, stream);