wireguard: fix passing null pointer
Type: fix Fixed coverity-issue CID 248517. Originally possibly passing null pointer to one function and directly dereferences it. This patch fixes the problem by add a new condition. Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com> Change-Id: I02fc6fb5d1cfd6138ea4ba2b1946fd8a7ef34d3b
This commit is contained in:

committed by
Fan Zhang

parent
699bea2494
commit
c810c33f84
@@ -902,6 +902,7 @@ wg_input_post (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
|
||||
last_rec_idx = data->receiver_index;
|
||||
}
|
||||
|
||||
ASSERT (peer != NULL); /* this pointer never should be NULL */
|
||||
if (PREDICT_FALSE (wg_input_post_process (vm, b[0], next, peer, data,
|
||||
&is_keepalive) < 0))
|
||||
goto trace;
|
||||
|
@@ -199,22 +199,22 @@ noise_remote_encrypt (vlib_main_t * vm, noise_remote_t *,
|
||||
static_always_inline noise_keypair_t *
|
||||
wg_get_active_keypair (noise_remote_t *r, uint32_t r_idx)
|
||||
{
|
||||
if (r->r_current != NULL && r->r_current->kp_local_index == r_idx)
|
||||
if (r->r_current != NULL)
|
||||
{
|
||||
return r->r_current;
|
||||
if (r->r_current->kp_local_index == r_idx)
|
||||
return r->r_current;
|
||||
}
|
||||
else if (r->r_previous != NULL && r->r_previous->kp_local_index == r_idx)
|
||||
if (r->r_previous != NULL)
|
||||
{
|
||||
return r->r_previous;
|
||||
if (r->r_previous->kp_local_index == r_idx)
|
||||
return r->r_previous;
|
||||
}
|
||||
else if (r->r_next != NULL && r->r_next->kp_local_index == r_idx)
|
||||
if (r->r_next != NULL)
|
||||
{
|
||||
return r->r_next;
|
||||
}
|
||||
else
|
||||
{
|
||||
return NULL;
|
||||
if (r->r_next->kp_local_index == r_idx)
|
||||
return r->r_next;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline bool
|
||||
|
Reference in New Issue
Block a user