mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-12 00:16:58 +00:00
BUG/MEDIUM: sample: Fix adjusting size in field converter
Adjust the size of the sample buffer before we change the "area" pointer. The change in size is calculated as the difference between the original pointer and the new start pointer. But since the `smp->data.u.str.area` assignment results in `smp->data.u.str.area` and `start` being the same pointer, we always ended up substracting zero. This changes it to change the size by the actual amount it changed. I'm not entirely sure what the impact of this is, but the previous code seemed wrong. [wt: from what I can see the only harmful case is when the output is converted to a stick-table key, it could result in zeroing past the end of the buffer; other cases do not touch beyond ->data]
This commit is contained in:
parent
59846b6773
commit
b28430591d
@ -2561,13 +2561,13 @@ found:
|
||||
if (!smp->data.u.str.data)
|
||||
return 1;
|
||||
|
||||
smp->data.u.str.area = start;
|
||||
|
||||
/* Compute remaining size if needed
|
||||
Note: smp->data.u.str.size cannot be set to 0 */
|
||||
if (smp->data.u.str.size)
|
||||
smp->data.u.str.size -= start - smp->data.u.str.area;
|
||||
|
||||
smp->data.u.str.area = start;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user