]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
return the correct location of the error
authorAlan T. DeKok <aland@freeradius.org>
Fri, 18 Mar 2022 00:04:54 +0000 (20:04 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 18 Mar 2022 13:16:28 +0000 (09:16 -0400)
src/protocols/dhcpv4/decode.c

index 35c508ce59f602e43d54e56051a65f9c7309686b..00f1dd1b9c5b974e67c12cebe85786e8048a9999 100644 (file)
@@ -449,7 +449,7 @@ static ssize_t decode_array(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
                        if ((size_t) (end - p) < element_len) goto raw;
 
                        slen = decode_value(ctx, out, parent, p, element_len, decode_ctx, false);
-                       if (slen < 0) return slen;
+                       if (slen < 0) return slen - (p - data);
                        if (!fr_cond_assert((size_t) slen == element_len)) return -(p - data);
 
                        p += slen;
@@ -479,7 +479,7 @@ static ssize_t decode_array(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
 
                p += 1;
                slen = decode_value(ctx, out, parent, p, element_len, decode_ctx, false);
-               if (slen < 0) return slen;
+               if (slen < 0) return slen - (p - data);
                p += slen;
        }