summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--librabbitmq/amqp_table.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/librabbitmq/amqp_table.c b/librabbitmq/amqp_table.c
index 1cb0d6b..24b087c 100644
--- a/librabbitmq/amqp_table.c
+++ b/librabbitmq/amqp_table.c
@@ -135,6 +135,10 @@ int amqp_decode_table(amqp_bytes_t encoded, amqp_pool_t *pool,
return AMQP_STATUS_BAD_AMQP_DATA;
}
+ if (tablesize + *offset > encoded.len) {
+ return AMQP_STATUS_BAD_AMQP_DATA;
+ }
+
entries = malloc(allocated_entries * sizeof(amqp_table_entry_t));
if (entries == NULL) {
return AMQP_STATUS_NO_MEMORY;