diag-client-lib icon indicating copy to clipboard operation
diag-client-lib copied to clipboard

[Unexpected issue]: TCP handler mixed up the TA and SA when sending the diag request

Open ZelongXie opened this issue 7 months ago • 0 comments

The issue occurred in lines 523 to 528 of the file doip_diagnostic_message_handler.cpp

// Add source address
doip_diag_req->GetTxBuffer().emplace_back(static_cast<std::uint8_t>((diagnostic_request->GetSa() & 0xFF00) >> 8u));
doip_diag_req->GetTxBuffer().emplace_back(static_cast<std::uint8_t>(diagnostic_request->GetSa() & 0x00FF));
// Add target address
doip_diag_req->GetTxBuffer().emplace_back(static_cast<std::uint8_t>((diagnostic_request->GetSa() & 0xFF00) >> 8u));
doip_diag_req->GetTxBuffer().emplace_back(static_cast<std::uint8_t>(diagnostic_request->GetSa() & 0x00FF));

This code should be modified to the following content:

// Add source address
doip_diag_req->GetTxBuffer().emplace_back(static_cast<std::uint8_t>((diagnostic_request->GetSa() & 0xFF00) >> 8u));
doip_diag_req->GetTxBuffer().emplace_back(static_cast<std::uint8_t>(diagnostic_request->GetSa() & 0x00FF));
// Add target address
doip_diag_req->GetTxBuffer().emplace_back(static_cast<std::uint8_t>((diagnostic_request->GetTa() & 0xFF00) >> 8u));
doip_diag_req->GetTxBuffer().emplace_back(static_cast<std::uint8_t>(diagnostic_request->GetTa() & 0x00FF));

@Iandiehard

ZelongXie avatar Jul 22 '24 07:07 ZelongXie