From: Arran Cudbard-Bell Date: Tue, 26 Oct 2021 20:36:12 +0000 (-0400) Subject: sbuff reparse should set current to start X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=25a126921cc32d27723a1f81bc4ccb3612837735;p=thirdparty%2Ffreeradius-server.git sbuff reparse should set current to start --- diff --git a/src/lib/util/sbuff.h b/src/lib/util/sbuff.h index ea5d253adbb..e87780db9e6 100644 --- a/src/lib/util/sbuff.h +++ b/src/lib/util/sbuff.h @@ -390,12 +390,12 @@ do { \ * * @private */ -#define _FR_SBUFF(_sbuff_or_marker, _start, _end, _adv_parent) \ +#define _FR_SBUFF(_sbuff_or_marker, _start, _current, _end, _adv_parent) \ ((fr_sbuff_t){ \ .buff = fr_sbuff_buff(_sbuff_or_marker), \ .start = (_start), \ .end = (_end), \ - .p = fr_sbuff_current(_sbuff_or_marker), \ + .p = (_current), \ .is_const = fr_sbuff_ptr(_sbuff_or_marker)->is_const, \ .adv_parent = (_adv_parent), \ .shifted = fr_sbuff_ptr(_sbuff_or_marker)->shifted, \ @@ -413,6 +413,7 @@ do { \ * @param[in] _sbuff_or_marker to make an ephemeral copy of. */ #define FR_SBUFF(_sbuff_or_marker) _FR_SBUFF(_sbuff_or_marker, \ + fr_sbuff_current(_sbuff_or_marker), \ fr_sbuff_current(_sbuff_or_marker), \ fr_sbuff_end(_sbuff_or_marker), \ 0x00) @@ -426,6 +427,7 @@ do { \ */ #define FR_SBUFF_ABS(_sbuff_or_marker) _FR_SBUFF(_sbuff_or_marker, \ fr_sbuff_start(_sbuff_or_marker), \ + fr_sbuff_current(_sbuff_or_marker), \ fr_sbuff_end(_sbuff_or_marker), \ 0x00) @@ -441,6 +443,7 @@ do { \ * @param[in] _sbuff_or_marker to make an ephemeral copy of. */ #define FR_SBUFF_REPARSE(_sbuff_or_marker) _FR_SBUFF(_sbuff_or_marker, \ + fr_sbuff_start(_sbuff_or_marker), \ fr_sbuff_start(_sbuff_or_marker), \ fr_sbuff_current(_sbuff_or_marker), \ 0x00) @@ -453,6 +456,7 @@ do { \ * @param[in] _sbuff_or_marker to make an ephemeral copy of. */ #define FR_SBUFF_BIND_CURRENT(_sbuff_or_marker) _FR_SBUFF(_sbuff_or_marker, \ + fr_sbuff_current(_sbuff_or_marker), \ fr_sbuff_current(_sbuff_or_marker), \ fr_sbuff_end(_sbuff_or_marker), \ 0x01) @@ -466,6 +470,7 @@ do { \ */ #define FR_SBUFF_BIND_CURRENT_ABS(_sbuff_or_marker) FR_SBUFF_ABS(_sbuff_or_marker, \ fr_sbuff_start(_sbuff_or_marker), \ + fr_sbuff_current(_sbuff_or_marker), \ fr_sbuff_end(_sbuff_or_marker), \ 0x01)