It's just domain knowledge and terminology. "Packet sockets" is shorthand for the AF_PACKET type sockets in Linux that let you construct network packets from the ground up, including the ethernet header, if you so wish.
That's as opposed to a regular socket, which is higher level and restricts you to a much smaller subset of things you can change/set.
The article just shows how they uncovered an exploit by "fuzzing" input to packet sockets. Where "fuzzing" just means using a tool that creates random inputs/values.
The concept I think I can still get my head around. It's all the stuff that surrounds it that eludes me. I have done some work in C but that C is unlike any of the C I wrote in college (duh, it's the kernel code)
I don't see what you mean. It's a long line, so it breaks across 3 lines, but otherwise, it's just:
if (a >= b && (int)(c - MACRO(d)) <= 0) goto out;
Or the stuff further down? Just confusing because tpacket_req and friends are defined as structs elsewhere, so you don't have that context. And it's not really C, it's syzkaller (fuzzing tool) descriptions, kind of a pseudo code syntax.
That's as opposed to a regular socket, which is higher level and restricts you to a much smaller subset of things you can change/set.
The article just shows how they uncovered an exploit by "fuzzing" input to packet sockets. Where "fuzzing" just means using a tool that creates random inputs/values.