mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-13 23:14:46 +00:00
[REVERT] undo the stick-table string key lookup fixes
Revert commits035da6d1b0
andf18b5f21ba
. These fixes were wrong. They worked but they were fixing the symptom instead of the root cause of the problem. The real issue was in the ebtree lookup code and it has been fixed now so these patches are not needed anymore. It's better not to copy memory blocks when we don't need to, so let's revert them.
This commit is contained in:
parent
e1ee956399
commit
a0e5861302
@ -560,25 +560,7 @@ struct stktable_key *stktable_fetch_key(struct stktable *t, struct proxy *px, st
|
||||
if (!static_table_key.key)
|
||||
return NULL;
|
||||
|
||||
if (t->type == STKTABLE_TYPE_STRING) {
|
||||
/* The string MUST be terminated by a '\0' after the key_len bytes. The problem
|
||||
* is that we cannot modify the input data if it comes from the original buffer,
|
||||
* so we copy it to a private buffer if required.
|
||||
*/
|
||||
if (static_table_key.key_len > t->key_size - 1)
|
||||
static_table_key.key_len = t->key_size - 1;
|
||||
|
||||
if (((char *)static_table_key.key)[static_table_key.key_len] != 0) {
|
||||
if ((char *)static_table_key.key < (char *)&static_table_key.data ||
|
||||
(char *)static_table_key.key > (char *)&static_table_key.data + sizeof(static_table_key.data)) {
|
||||
/* key definitly not part of the static_table_key private data buffer */
|
||||
memcpy(static_table_key.data.buf, static_table_key.key, static_table_key.key_len);
|
||||
static_table_key.key = static_table_key.data.buf;
|
||||
}
|
||||
((char *)static_table_key.key)[static_table_key.key_len] = 0;
|
||||
}
|
||||
}
|
||||
else if (static_table_key.key_len < t->key_size) {
|
||||
if ((static_table_key.key_len < t->key_size) && (t->type != STKTABLE_TYPE_STRING)) {
|
||||
/* need padding with null */
|
||||
|
||||
/* assume static_table_key.key_len is less than sizeof(static_table_key.data.buf)
|
||||
|
Loading…
Reference in New Issue
Block a user