From: Arran Cudbard-Bell Date: Fri, 16 Feb 2018 23:34:22 +0000 (+0000) Subject: Invert args to CHECK_FREESPACE in array encoder X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=79707dc94b84bd2956065153f8f9be15744c1b62;p=thirdparty%2Ffreeradius-server.git Invert args to CHECK_FREESPACE in array encoder --- diff --git a/src/protocols/dhcpv6/encode.c b/src/protocols/dhcpv6/encode.c index 6645d6f855c..0e255161bef 100644 --- a/src/protocols/dhcpv6/encode.c +++ b/src/protocols/dhcpv6/encode.c @@ -383,7 +383,7 @@ static ssize_t encode_array(uint8_t *out, size_t outlen, * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+ */ if (!da->flags.length) { - CHECK_FREESPACE(sizeof(uint16_t) + element_len, end - p); + CHECK_FREESPACE(end - p, sizeof(uint16_t) + element_len); len_field = (uint16_t *)p; p += sizeof(uint16_t); /* Make room for the length field */ } diff --git a/src/tests/unit/dhcpv6.txt b/src/tests/unit/dhcpv6.txt index 92751d6a4ff..f58cfb8e099 100644 --- a/src/tests/unit/dhcpv6.txt +++ b/src/tests/unit/dhcpv6.txt @@ -109,3 +109,10 @@ data 00 3d 00 02 00 00 # encode-pair DHCPv6-SIP-Server-Address = 2001:0db8:85a3:0000:0000:8a2e:0370:7334, DHCPv6-SIP-Server-Address = 2001:0db8:85a3:0000:0000:8a2e:0370:7335 data 00 16 00 20 20 01 0d b8 85 a3 00 00 00 00 8a 2e 03 70 73 34 20 01 0d b8 85 a3 00 00 00 00 8a 2e 03 70 73 35 + +# +# Array of strings, each substring should have a 16bit length field containing its length +# +encode-pair DHCPv6-Bootfile-Param = "I LIKE CHICKEN", DHCPv6-Bootfile-Param = "I LIKE LIVER" +data 00 3c 00 1e 00 0e 49 20 4c 49 4b 45 20 43 48 49 43 4b 45 4e 00 0c 49 20 4c 49 4b 45 20 4c 49 56 45 52 +