From 388180e6c35798d8f1bcadcf5a7010529921304e Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Sat, 16 Mar 2013 16:48:48 +0100 Subject: ring: check return value of setsockopt If something screws up, which is rather unlikely, but if it happens, let the user know. Signed-off-by: Daniel Borkmann --- ring_tx.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'ring_tx.c') diff --git a/ring_tx.c b/ring_tx.c index dc777e5..9869131 100644 --- a/ring_tx.c +++ b/ring_tx.c @@ -31,9 +31,14 @@ void set_packet_loss_discard(int sock) void destroy_tx_ring(int sock, struct ring *ring) { + int ret; + fmemset(&ring->layout, 0, sizeof(ring->layout)); - setsockopt(sock, SOL_PACKET, PACKET_TX_RING, &ring->layout, - sizeof(ring->layout)); + + ret = setsockopt(sock, SOL_PACKET, PACKET_TX_RING, &ring->layout, + sizeof(ring->layout)); + if (unlikely(ret)) + panic("Cannot destroy the TX_RING!\n"); munmap(ring->mm_space, ring->mm_len); ring->mm_len = 0; -- cgit v1.2.3-54-g00ecf