Re: [PATCH] sunrpc: cache_register can use wrong module reference

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 02, 2005 at 02:29:36PM -0700, Bruce Allan wrote:
> [resending to Neil, Trond and linux-nfs list; initial copy to lkml]
> 
> When registering an RPC cache, cache_register() always sets the owner as
> the sunrpc module.  However, there are RPC caches owned by other modules. 
> With the incorrect owner setting, the real owning module can be removed
> potentially with an open reference to the cache from userspace.
> 
> For example, if one were to stop the nfs server and unmount the nfsd
> filesystem, the nfsd module could be removed eventhough rpc.idmapd had
> references to the idtoname and nametoid caches (i.e.
> /proc/net/rpc/nfs4.<cachename>/channel is still open).  This resulted in
> a system panic on one of our machines when attempting to restart the nfs
> services after reloading the nfsd module.
> 
> The following patch fixes this by passing the address of the owning
> struct module to cache_register().  In addition, printk's were added to
> functions calling cache_unregister() to dump an error message on
> failure.
> 
> Signed-off-by: Bruce Allan <[email protected]>

Please put a

	struct module	*owner;

field into struct cache_detail instead, that's how it works for other
methods tables like that.

And while we're at it, cache_detail is an awfully generic name for a sunrpc
data structure.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux