From: Alan T. DeKok Date: Fri, 18 Mar 2022 00:04:54 +0000 (-0400) Subject: return the correct location of the error X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fcc8ba89d4c3ea387fe990a5e0a5b039c265d85;p=thirdparty%2Ffreeradius-server.git return the correct location of the error --- diff --git a/src/protocols/dhcpv4/decode.c b/src/protocols/dhcpv4/decode.c index 35c508ce59f..00f1dd1b9c5 100644 --- a/src/protocols/dhcpv4/decode.c +++ b/src/protocols/dhcpv4/decode.c @@ -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; }