aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/wireguard/wireguard_input.c
diff options
context:
space:
mode:
authorGabriel Oginski <gabrielx.oginski@intel.com>2022-02-22 14:15:11 +0000
committerFan Zhang <roy.fan.zhang@intel.com>2022-02-23 09:15:12 +0000
commit45207e0fb2c46e211ff2e66fb141867d81198d97 (patch)
treeb1c49c364ceb666dfab8f9086395d9c62e829408 /src/plugins/wireguard/wireguard_input.c
parenta7d7383a44335358a40d7c2b322999958a717a60 (diff)
wireguard: fix dereferences null pointer
Type: fix Fixed coverity-issue CID 248517. Originally possible passing null pointer to one function and directly dereferences it. This patch fixes the issue by add a new condition to check this pointer. Change-Id: If506abaf08c9f003860b641971af291f68613c18 Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com>
Diffstat (limited to 'src/plugins/wireguard/wireguard_input.c')
-rw-r--r--src/plugins/wireguard/wireguard_input.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/plugins/wireguard/wireguard_input.c b/src/plugins/wireguard/wireguard_input.c
index ba5a1d679e2..7db1a0ccfec 100644
--- a/src/plugins/wireguard/wireguard_input.c
+++ b/src/plugins/wireguard/wireguard_input.c
@@ -902,10 +902,17 @@ 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;
+ if (PREDICT_TRUE (peer != NULL))
+ {
+ if (PREDICT_FALSE (wg_input_post_process (vm, b[0], next, peer, data,
+ &is_keepalive) < 0))
+ goto trace;
+ }
+ else
+ {
+ next[0] = WG_INPUT_NEXT_PUNT;
+ goto trace;
+ }
if (PREDICT_FALSE (peer_idx && (last_peer_time_idx != peer_idx)))
{