]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Invert args to CHECK_FREESPACE in array encoder
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Fri, 16 Feb 2018 23:34:22 +0000 (23:34 +0000)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Fri, 16 Feb 2018 23:34:22 +0000 (23:34 +0000)
src/protocols/dhcpv6/encode.c
src/tests/unit/dhcpv6.txt

index 6645d6f855ca260eb9926acb4eb368ed1673e386..0e255161bef7fcb5a2a9876d7041dbb5dbcd43f0 100644 (file)
@@ -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 */
                }
index 92751d6a4ffb6af5ccf4d6b220e188287a57edcd..f58cfb8e099c5b74ff1f714411fcf43da24b0b94 100644 (file)
@@ -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
+