/src/rtpproxy/scripts/fuzz/rfz_chunk.c
Line | Count | Source |
1 | | #include <stdlib.h> |
2 | | |
3 | | #include "rfz_chunk.h" |
4 | | |
5 | | struct rfz_chunk |
6 | 191k | rfz_get_chunk(const char *data, size_t size) { |
7 | 191k | struct rfz_chunk chunk = {0}; |
8 | | |
9 | 198k | while (chunk.size < size) { |
10 | 196k | size -= 1; |
11 | 196k | chunk.size += (unsigned char)data[0]; |
12 | 196k | data += 1; |
13 | 196k | if ((unsigned char)data[-1] != 255) |
14 | 190k | break; |
15 | 196k | } |
16 | 191k | chunk.size += 1; |
17 | 191k | if (chunk.size > size) |
18 | 11.0k | chunk.size = size; |
19 | 191k | chunk.data = data; |
20 | 191k | chunk.rem_size = size - chunk.size; |
21 | 191k | chunk.rem_data = data + chunk.size; |
22 | 191k | return (chunk); |
23 | 191k | } |