diff --git a/icmp_socket.c b/icmp_socket.c index 5bc8649..f6a6536 100644 --- a/icmp_socket.c +++ b/icmp_socket.c @@ -136,7 +136,9 @@ static ssize_t bat_socket_read(struct file *file, char __user *buf, spin_unlock_bh(&socket_client->lock); - error = __copy_to_user(buf, &socket_packet->icmp_packet, + //queue can contain packets larger than icmp_packet (like icmp_packet_rr), + //so we can't rely just on the access_ok above + error = copy_to_user(buf, &socket_packet->icmp_packet, socket_packet->icmp_len); packet_len = socket_packet->icmp_len;