kernelnewbies.kernelnewbies.org archive mirror
 help / color / mirror / Atom feed
* Query regarding kernel modules intercepting system call.
@ 2017-07-08 14:08 Ajinkya Surnis
  2017-07-08 14:13 ` Greg KH
  0 siblings, 1 reply; 14+ messages in thread
From: Ajinkya Surnis @ 2017-07-08 14:08 UTC (permalink / raw)
  To: kernelnewbies

Hi guys,

I'm new to kernelnewbies and this is my first question in the list.

I'm working on system call interception (for open() system call) and I got
one problem: I have two kernel modules (mod1 and mod2) and both of them are
trying to intercept open() syscall. I've loaded mod1 first and then mod2.
The mod1 intercepted open() by:

original_open1 = sys_call_table[__NR_open];
sys_call_table[__NR_open] = mod1_open;

Here original_open1 would be sys_open. After this, mod2 intercepted open()
 by:

original_open2 = sys_call_table[__NR_open];
sys_call_table[__NR_open] = mod2_open;

Here, original_open2 would be mod1_open() since mod1 was loaded first. Now,
the problem is: Suppose I unload mod1 first and open() system call gets
executed, then mod2_open() would get called, which ultimately calls
mod1_open().

Since mod1 is already unloaded, calling mod1_open() caused panic (since the
function pointer is no longer a valid memory region).

I need some mechanism to avoid this problem. Basically, I want a solution
which facilitates loading/unloading the modules (which intercept same
syscall) in any random order without causing any panic.

Is there some kind of facility such that while unloading the module (`mod2`
here), the module will broadcast the message to all other modules that it's
being unloaded and instead of refering to `original_open2()` the other
modules should use `original_open1()`.

Your help would really be appreciated.

Thanks,

Ajinkya.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20170708/8a42b45c/attachment.html 

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2017-07-09 10:18 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-08 14:08 Query regarding kernel modules intercepting system call Ajinkya Surnis
2017-07-08 14:13 ` Greg KH
2017-07-08 14:23   ` Ajinkya Surnis
2017-07-08 15:20     ` Greg KH
2017-07-08 15:38       ` Ajinkya Surnis
2017-07-08 16:04         ` Greg KH
2017-07-08 16:08           ` Ajinkya Surnis
2017-07-08 16:14             ` Greg KH
2017-07-08 18:06               ` Aruna Hewapathirane
2017-07-08 18:19                 ` Ajinkya Surnis
2017-07-08 19:36                   ` Aruna Hewapathirane
2017-07-09  1:06         ` valdis.kletnieks at vt.edu
2017-07-09 10:06         ` Lino Sanfilippo
2017-07-09 10:18           ` Lino Sanfilippo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).