Damn. The following patch will repair traceroute.
I'm sorry, that finding it out took so long time.
By a strange reason, all my kernels up to 2.1.14 had this place correct.
Apparently, I made something wrong when patching. Beg pardon.
static int raw_getrawfrag(const void *p, char *to, unsigned int offset, unsigned int fraglen)
{
struct rawfakehdr *rfh = (struct rawfakehdr*)p;
int err;
- err = copy_from_user(to, (const unsigned char *)p+offset, fraglen);
+ err = copy_from_user(to, (const unsigned char *)rfh->from+offset, fraglen);
if (err)
return err;
Alexey Kuznetsov.