Skip to content

Commit

Permalink
libbpf: Fix potential NULL pointer dereference
Browse files Browse the repository at this point in the history
Wait until after the UMEM is checked for null to dereference it.

Fixes: 43f1bc1 ("libbpf: Restore umem state after socket create failure")
Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20210408052009.7844-1-ciara.loftus@intel.com
  • Loading branch information
Ciara Loftus authored and Daniel Borkmann committed Apr 8, 2021
1 parent 1ffbc7e commit afd0be7
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions tools/lib/bpf/xsk.c
Original file line number Diff line number Diff line change
Expand Up @@ -852,18 +852,19 @@ int xsk_socket__create_shared(struct xsk_socket **xsk_ptr,
struct xsk_ring_cons *comp,
const struct xsk_socket_config *usr_config)
{
bool unmap, rx_setup_done = false, tx_setup_done = false;
void *rx_map = NULL, *tx_map = NULL;
struct sockaddr_xdp sxdp = {};
struct xdp_mmap_offsets off;
struct xsk_socket *xsk;
struct xsk_ctx *ctx;
int err, ifindex;
bool unmap = umem->fill_save != fill;
bool rx_setup_done = false, tx_setup_done = false;

if (!umem || !xsk_ptr || !(rx || tx))
return -EFAULT;

unmap = umem->fill_save != fill;

xsk = calloc(1, sizeof(*xsk));
if (!xsk)
return -ENOMEM;
Expand Down

0 comments on commit afd0be7

Please sign in to comment.