Parent: 9c7feeb264bd9dcb95792e8ffcbf75c662ff3195
Author: Artem Rakhov <arakhov@chromium.org>
Committer: Marcel Holtmann <marcel@holtmann.org>
Date: 2014-06-30 23:15:40
Tree: 3e0d89ebb05876bd77fd03d1374dbc2d05bf21b8
sdp: Fix requests with invalid size This patch fixes processing of SDP requests which have wrong PDU size in header. Every SDP request consists of two parts: header and data. Header always contains 3 values: request code (identifies it's type), transaction ID (in order to match response with request), and data's size. According to Bluetooth specification, when the data's size is wrong, SDP server should return SDP_ErrorResponse with "Invalid PDU Size" parameter. But now the server doesn't respond at all, and corresponding socket on client's side crashes. The patch actually reverts commit 388761cdc8f8a1293bb0b1a5bd576b5fb41616ca, because the size of request should be checked inside handle_request() function in order to be able to respond with SDP_ErrorResponse, instead of stopping the connection.
Diffstat
| M | src/sdpd-server.c | | | 6 | +++++- |
1 files changed, 5 insertions(+), 1 deletions(-)