❦ 17 novembre 2016 15:14 +0100, Willy Tarreau <w...@1wt.eu> :

> Good catch, but look the original if intented to catch this but was
> wrong, thus I think it's better to remove it now :
>
>> ---
>>  src/stick_table.c | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>> 
>> diff --git a/src/stick_table.c b/src/stick_table.c
>> index 7a2fcc21af8b..2d5c042174fb 100644
>> --- a/src/stick_table.c
>> +++ b/src/stick_table.c
>> @@ -170,7 +170,10 @@ struct stksess *stksess_new(struct stktable *t, struct 
>> stktable_key *key)
>>                      return NULL;
>>      }
>>  
>> -    ts = pool_alloc2(t->pool) + t->data_size;
>> +    ts = pool_alloc2(t->pool);
>> +    if (unlikely(ts == NULL))
>> +            return NULL;
>> +    ts += t->data_size;
>>      if (ts) {
>         ^^^^^^^^^
> will always be true.

Wow, dunno how I missed that!

>>              t->current++;
>>              stksess_init(t, ts);
>
> Or another way to fix it is to simply move the addition inside the if.
>
> I can modify your patch if you don't have the time, just let me know.

Updated patch sent.
-- 
Vincent Bernat — vincent.ber...@exoscale.ch
❬❱ https://www.exoscale.ch

Reply via email to