Re: 2.0.33 off-by-one

Andrea Arcangeli (arcangeli@mbox.queen.it)
Sun, 19 Apr 1998 02:10:45 +0200 (CEST)


On Sat, 18 Apr 1998, ADAM Sulmicki wrote:

>I think I could just make an module which could have inside of it the

Right!

>ip_glue() extracted (and fixed) from ip_fragment.c. I could use Source.map
>to find out where the original ip_glue is in kernel. and then either:
>
>-make first instruction in ip_glue() to call my ip_glue_new()
> which when done would return to old ip_glue(). the 2nd instruction
> in old ip_glue() would be return.
>or
>-just find the only place in kernel where ip_glue is being called
> and replace it with call to my new ip_glue.

I' d like this way.

> I think it could be handled by init_module() part of module
> and cleanup_module() could restore it back to original state.
>
>Now I'm wondering how I could find out where ip_glue is in system
>w/out having to resort to System.map as it is pretty much system
>dependent, and on some systems it is /System.map and on others
>/boot/System.map. Advantage of it could be that the module
>could be system independent and work almost with any 2.0.3x
>(at least).

If you use the same compiler you could search for an intersting string in
the kernel virtual memory and replace at some offset a double word with
your new &__ip_glue(). If you don' t use the same compiler I don' t see a
way to detect where is `call ip_glue'.

Andrea[s] Arcangeli

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu