mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-15 21:59:41 -04:00
BUG/MINOR: samples: fix unnecessary memcopy converting binary to string.
This commit is contained in:
parent
42fb809cf4
commit
4b9e80268e
1 changed files with 8 additions and 15 deletions
23
src/sample.c
23
src/sample.c
|
|
@ -499,27 +499,20 @@ static int c_str2ipv6(struct sample *smp)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* The sample is always copied into a new one so that smp->size is always
|
||||
* valid. The NULL char always enforces the end of string if it is met.
|
||||
/*
|
||||
* The NULL char always enforces the end of string if it is met.
|
||||
* Data is never changed, so we can ignore the CONST case
|
||||
*/
|
||||
static int c_bin2str(struct sample *smp)
|
||||
{
|
||||
struct chunk *trash = get_trash_chunk();
|
||||
unsigned char c;
|
||||
int ptr = 0;
|
||||
int i;
|
||||
|
||||
while (ptr < smp->data.str.len) {
|
||||
c = smp->data.str.str[ptr];
|
||||
if (!c)
|
||||
for (i = 0; i < smp->data.str.len; i++) {
|
||||
if (!smp->data.str.str[i]) {
|
||||
smp->data.str.len = i;
|
||||
break;
|
||||
trash->str[ptr] = c;
|
||||
ptr++;
|
||||
}
|
||||
}
|
||||
trash->len = ptr;
|
||||
trash->str[ptr] = 0;
|
||||
smp->data.str = *trash;
|
||||
smp->type = SMP_T_STR;
|
||||
smp->flags &= ~SMP_F_CONST;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue