diff options
Diffstat (limited to 'src/server.c')
| -rw-r--r-- | src/server.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/src/server.c b/src/server.c index a228dd7..52437ea 100644 --- a/src/server.c +++ b/src/server.c @@ -565,20 +565,17 @@ void paste_server( } break; case query_packets: { - if (in_len != 1 + 32 + 32 + 64 + 2 + 8) { + if (in_len != 1 + 32 + 32 + 2 + 8) { *out = NULL; *out_len = 0; return; } public_key author_enc, author_sign; - signature sig; size_t off = 1; memcpy(author_enc, in + off, 32); off += 32; memcpy(author_sign, in + off, 32); off += 32; - memcpy(sig, in + off, 64); - off += 64; uint16_t req_count = read_u16_le(in + off); off += 2; uint64_t req_offset = read_u64_le(in + off); @@ -588,11 +585,7 @@ void paste_server( memcpy(msg + 32, author_sign, 32); write_u16_le(msg + 64, req_count); write_u64_le(msg + 66, req_offset); - if (!verify_raw_signature(msg, sizeof(msg), sig, author_sign)) { - *out = NULL; - *out_len = 0; - return; - } + if (req_count > 128) req_count = 128; struct data_packet* packets = malloc((size_t) req_count * sizeof(struct data_packet)); if (!packets) { |
