[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20091022135557.GA5162@lenovo>
Date: Thu, 22 Oct 2009 17:55:57 +0400
From: Cyrill Gorcunov <gorcunov@...il.com>
To: David Miller <davem@...emloft.net>
Cc: netdev@...r.kernel.org
Subject: Re: [RFC] net,socket: introduce build_sockaddr_check helper to
catch overflow at build time
[David Miller - Thu, Oct 22, 2009 at 04:49:14AM -0700]
| From: Cyrill Gorcunov <gorcunov@...il.com>
| Date: Wed, 21 Oct 2009 21:07:32 +0400
|
| > net,socket: introduce build_sockaddr_check helper to catch overflow at build time
| >
| > proto_ops->getname implies copying protocol specific data
| > into storage unit (particulary to __kernel_sockaddr_storage).
| > So when one implements new protocol he either may keep this
| > in mind (or may not).
| >
| > Lets introduce build_sockaddr_check helper which check if
| > storage unit is not overfowed. Note that the check is build
| > time and introduce no slowdown at execution time.
| >
| > Signed-off-by: Cyrill Gorcunov <gorcunov@...nvz.org>
|
| Nice idea, and I wonder if we can automate it even further.
| Perhaps some tag that gets put on the socket address type
| definition or similar?
|
Thanks for review David! Not sure if I understand you right.
Initially I was trying to bring as minimum changes as possible.
Also I was shuffle in mind the following possibilities:
1) Since at least one .getname handler use memcpy, we could
introduce some helper which check size (at build time) and
then do memcpy (not optimal perhaps).
2) All handlers set *len to some size explicitly so we may
introduce set_sockaddr_size() helper like
#define set_sockaddr_size(ptr, size) \
do { \
build_sockaddr_check(size); \
*ptr = size; \
} while (0)
Or you meant something completely different?
-- Cyrill
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists