diff --git a/src/stick_table.c b/src/stick_table.c index 52a58665e..3097e662f 100644 --- a/src/stick_table.c +++ b/src/stick_table.c @@ -152,7 +152,8 @@ static int stktable_trash_oldest(struct stktable *t, int to_batch) * Allocate and initialise a new sticky session. * The new sticky session is returned or NULL in case of lack of memory. * Sticky sessions should only be allocated this way, and must be freed using - * stksess_free(). Increase table sticky session counter. + * stksess_free(). Table 's sticky session counter is increased. If + * is not NULL, it is assigned to the new session. */ struct stksess *stksess_new(struct stktable *t, struct stktable_key *key) { @@ -170,7 +171,8 @@ struct stksess *stksess_new(struct stktable *t, struct stktable_key *key) if (ts) { t->current++; stksess_init(t, ts); - stksess_setkey(t, ts, key); + if (key) + stksess_setkey(t, ts, key); } return ts;