session: session_lookup_local_endpoint returns the wrong value 67/41367/2
authorSteven Luong <[email protected]>
Mon, 5 Aug 2024 21:58:19 +0000 (14:58 -0700)
committerFlorin Coras <[email protected]>
Tue, 6 Aug 2024 15:52:35 +0000 (15:52 +0000)
SESSION_INVALID_INDEX is u32. The function is supposed to return u64.
The caller of the function tests the return value to see if it is
SESSION_INVALID_HANDLE in ct_session_connect. If it is not, it
thinks it is a valid handle and calls listen_session_get_from_handle
which causes a crash.

Type: fix

Change-Id: I4ede6b2dfb95259f3a6071cfa3a77ce0d9cd9edd
Signed-off-by: Steven Luong <[email protected]>
src/vnet/session/session_lookup.c

index 1e58e5e..3a461a5 100644 (file)
@@ -595,7 +595,7 @@ session_lookup_local_endpoint (u32 table_index, session_endpoint_t * sep)
 
   st = session_table_get (table_index);
   if (!st)
-    return SESSION_INVALID_INDEX;
+    return SESSION_INVALID_HANDLE;
   ASSERT (st->is_local);
 
   if (sep->is_ip4)