]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
round up when checking bounds
authorAlan T. DeKok <aland@freeradius.org>
Sat, 16 Nov 2019 20:54:58 +0000 (15:54 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Sat, 16 Nov 2019 20:54:58 +0000 (15:54 -0500)
src/lib/util/struct.c

index 3c58a5f3b3255ceee2668607631687b5e5040120..988fb34331edcdc6094104684fd3a92199bd7b24 100644 (file)
@@ -104,7 +104,7 @@ ssize_t fr_struct_from_network(TALLOC_CTX *ctx, fr_cursor_t *cursor,
                        uint64_t value;
 
                        num_bits = offset + child->flags.length;
-                       if ((end - p) < (num_bits >> 3)) goto unknown;
+                       if ((end - p) < ((num_bits + 7) >> 3)) goto unknown;
 
                        memset(array, 0, sizeof(array));
                        memcpy(&array[0], p, ((num_bits + 7) >> 3)); /* round up to nearest byte */