Messages in this thread | | | Date | Sun, 19 Apr 1998 02:10:45 +0200 (CEST) | From | Andrea Arcangeli <> | Subject | Re: 2.0.33 off-by-one |
| |
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
| |