Skip to content

Commit a94b53f

Browse files
committed
utils/sdp_parser: Check length
1 parent 9c4df61 commit a94b53f

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/utils/sdp_parser.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Sap_packet_view Sap_packet_view::from_buffer(const void *buf, size_t size){
4343

4444
std::string_view sap(static_cast<const char *>(buf), size);
4545

46-
if(sap.empty()){
46+
if(sap.size() < 8){
4747
return ret;
4848
}
4949

@@ -59,15 +59,15 @@ Sap_packet_view Sap_packet_view::from_buffer(const void *buf, size_t size){
5959
auth_len = sap[0];
6060
sap.remove_prefix(1);
6161

62-
//TODO error check length
6362
ret.hash = sap[0] << 8 | sap[1];
6463
sap.remove_prefix(2);
6564

66-
//TODO error check length
6765
ret.source = sap.substr(0, 4);
6866
sap.remove_prefix(4);
6967

70-
//TODO error check length
68+
if(sap.size() < auth_len)
69+
return ret;
70+
7171
sap.remove_prefix(auth_len);
7272

7373
if(sv_is_prefix(sap, "v=0")){
@@ -154,7 +154,7 @@ Rtp_pkt_view Rtp_pkt_view::from_buffer(void *buf, size_t size){
154154

155155
auto charbuf = static_cast<unsigned char*>(buf);
156156

157-
uint8_t version = charbuf[0] >> 6;
157+
[[maybe_unused]] uint8_t version = charbuf[0] >> 6;
158158
bool padding = charbuf[0] & (1 << 5);
159159
bool extension = charbuf[0] & (1 << 4);
160160
ret.csrc_count = charbuf[0] & 0x0F;

0 commit comments

Comments
 (0)