nts: avoid assumption about cookie record

The cookie record is currently assumed to be the longest record that
needs to be accepted by the client, but that does not have to be always
the case. Define the processing buffer using the maximum body record
constant instead and add an assertion to make sure it's not smaller than
the maximum accepted cookie length.
This commit is contained in:
Miroslav Lichvar 2021-04-27 15:39:59 +02:00
parent 7925ed39b8
commit d01cb5af46

View file

@ -127,9 +127,10 @@ process_response(NKC_Instance inst)
{ {
int next_protocol = -1, aead_algorithm = -1, error = 0; int next_protocol = -1, aead_algorithm = -1, error = 0;
int i, critical, type, length; int i, critical, type, length;
uint16_t data[NKE_MAX_COOKIE_LENGTH / sizeof (uint16_t)]; uint16_t data[NKE_MAX_RECORD_BODY_LENGTH / sizeof (uint16_t)];
assert(NKE_MAX_COOKIE_LENGTH % sizeof (uint16_t) == 0); assert(NKE_MAX_COOKIE_LENGTH <= NKE_MAX_RECORD_BODY_LENGTH);
assert(sizeof (data) % sizeof (uint16_t) == 0);
assert(sizeof (uint16_t) == 2); assert(sizeof (uint16_t) == 2);
inst->num_cookies = 0; inst->num_cookies = 0;