[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170705193143.GA1050@infradead.org>
Date: Wed, 5 Jul 2017 12:31:43 -0700
From: Christoph Hellwig <hch@...radead.org>
To: Liang Chen <liangchen.linux@...il.com>
Cc: linux-bcache@...r.kernel.org, linux-kernel@...r.kernel.org,
colyli@...e.de, bcache@...ux.ewheeler.net
Subject: Re: [PATCH] bcache: avoid a dangerous addressing in closure_queue
On Wed, Jul 05, 2017 at 08:53:19PM +0800, Liang Chen wrote:
> The use of the union reduces the size of closure struct by taking advantage
> of the current size of its members. The offset of func in work_struct equals
> the size of the first three members, so that work.work_func will just
> reference the forth member - the pointer to closure_fn.
>
> This is smart but dangerous. It can be broken if work_struct or the other
> ones get changed, and can be a bit difficult to debug.
Please, don't ever cast function pointers, as that's extremely
dangerous.
Powered by blists - more mailing lists