PR: 1930
Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de> Approved by: steve@openssl.org Limit size of DTLS record buffer queue.
This commit is contained in:
parent
661d35dfb2
commit
88b48dc680
@ -237,3 +237,17 @@ pqueue_next(pitem **item)
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
pqueue_size(pqueue_s *pq)
|
||||||
|
{
|
||||||
|
pitem *item = pq->items;
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
while(item != NULL)
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
item = item->next;
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
@ -89,5 +89,6 @@ pitem *pqueue_iterator(pqueue pq);
|
|||||||
pitem *pqueue_next(piterator *iter);
|
pitem *pqueue_next(piterator *iter);
|
||||||
|
|
||||||
void pqueue_print(pqueue pq);
|
void pqueue_print(pqueue pq);
|
||||||
|
int pqueue_size(pqueue pq);
|
||||||
|
|
||||||
#endif /* ! HEADER_PQUEUE_H */
|
#endif /* ! HEADER_PQUEUE_H */
|
||||||
|
@ -207,6 +207,10 @@ dtls1_buffer_record(SSL *s, record_pqueue *queue, unsigned char *priority)
|
|||||||
DTLS1_RECORD_DATA *rdata;
|
DTLS1_RECORD_DATA *rdata;
|
||||||
pitem *item;
|
pitem *item;
|
||||||
|
|
||||||
|
/* Limit the size of the queue to prevent DOS attacks */
|
||||||
|
if (pqueue_size(queue->q) >= 100)
|
||||||
|
return 0;
|
||||||
|
|
||||||
rdata = OPENSSL_malloc(sizeof(DTLS1_RECORD_DATA));
|
rdata = OPENSSL_malloc(sizeof(DTLS1_RECORD_DATA));
|
||||||
item = pitem_new(priority, rdata);
|
item = pitem_new(priority, rdata);
|
||||||
if (rdata == NULL || item == NULL)
|
if (rdata == NULL || item == NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user