- Timestamp:
- 10/20/19 01:05:29 (4 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r11545 r11548 6162 6162 { 6163 6163 // parse packet size (ASN.1) 6164 uint32_t size = 0; 6164 uint32_t sizebytes = 0; 6165 uint32_t tmp_data_len = mbuf[3] & 0x7F; 6165 6166 if(mbuf[3] & 0x80) 6166 6167 { 6167 uint32_t tmp_data_len = 0; 6168 size = mbuf[3] & 0x7F; 6169 if(3 + size < mbuf_len) 6170 { 6171 uint32_t k; 6172 for(k = 0; k < size; k++) 6173 { 6174 tmp_data_len = (tmp_data_len << 8) | mbuf[4 + k]; 6175 } 6168 sizebytes = tmp_data_len; 6169 if(3 + sizebytes < mbuf_len) 6170 { 6171 tmp_data_len = b2i(sizebytes, mbuf + 4); 6176 6172 } 6177 6173 else … … 6186 6182 { 6187 6183 cs_log("Socket command too big: %d bytes", tmp_data_len); 6188 (*data_len) = 0xFFFF - 4 - size; 6189 } 6190 else 6191 { 6192 (*data_len) = tmp_data_len; 6193 } 6194 } 6195 else 6196 { 6197 (*data_len) = mbuf[3] & 0x7F; 6198 } 6199 6200 (*chunksize) = 4 + size + (*data_len); 6184 tmp_data_len = 0xFFFF - 4 - sizebytes; 6185 } 6186 } 6187 (*data_len) = tmp_data_len; 6188 (*chunksize) = 4 + sizebytes + (*data_len); 6201 6189 cs_log_dbg(D_DVBAPI, "Got packet with opcode %08X and size %" PRIu16, opcode, (*chunksize)); 6202 6190 } -
trunk/oscam-string.c
r11506 r11548 298 298 switch(n) 299 299 { 300 case 1: 301 return b[0]; 300 302 case 2: 301 303 return (b[0] << 8) | b[1];
Note:
See TracChangeset
for help on using the changeset viewer.