| 519 | } |
| 520 | |
| 521 | static bencode_item_t *__bencode_decode_list(bencode_buffer_t *buf, const char *s, const char *end) { |
| 522 | bencode_item_t *ret, *item; |
| 523 | |
| 524 | if (*s != 'l') |
| 525 | return NULL; |
| 526 | s++; |
| 527 | |
| 528 | ret = __bencode_item_alloc(buf, 0); |
| 529 | if (!ret) |
| 530 | return NULL; |
| 531 | __bencode_list_init(ret); |
| 532 | |
| 533 | while (s < end) { |
| 534 | item = __bencode_decode(buf, s, end); |
| 535 | if (!item) |
| 536 | return NULL; |
| 537 | s += item->str_len; |
| 538 | if (item->type == BENCODE_END_MARKER) |
| 539 | break; |
| 540 | __bencode_container_add(ret, item); |
| 541 | } |
| 542 | |
| 543 | return ret; |
| 544 | } |
| 545 | |
| 546 | static bencode_item_t *__bencode_decode_integer(bencode_buffer_t *buf, const char *s, const char *end) { |
| 547 | long long int i; |
no test coverage detected