From: "J. Bruce Fields" <bfields@fieldses.org>
To: chucklever@gmail.com
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH] nfs: Fix misparsing of nfsv4 fs_locations attribute
Date: Wed, 20 Aug 2008 16:47:51 -0400 [thread overview]
Message-ID: <20080820204751.GE21226@fieldses.org> (raw)
In-Reply-To: <76bd70e30808201319j7b59de5gc912fcd01594e8-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Wed, Aug 20, 2008 at 04:19:48PM -0400, Chuck Lever wrote:
> On Wed, Aug 20, 2008 at 4:08 PM, J. Bruce Fields <bfields@fieldses.org> wrote:
> > On Fri, Aug 15, 2008 at 12:59:09PM -0400, Chuck Lever wrote:
> >> On Aug 14, 2008, at 6:30 PM, J. Bruce Fields wrote:
> >>> I was looking back at this bug with the misparsing of
> >>> (non-mull-terminated) fs_locations attributes. Thanks to the work on
> >>> nfs_parse_server_address, etc., we can now also more easily support
> >>> ipv6
> >>> addresses here. But I got lost in the usual maze of twisty struct
> >>> sockaddr_*'s, all alike. Is this right? Does any of it need to be
> >>> under CONFIG_IPV6? Is there a simpler way?
> >>
> >> The use of the new address parser looks correct, but your string
> >> handling needs work. :-)
> >>
> >> Comments below...
> >
> > Pffft. My hope that someone else would pick this up for me was
> > obviously fantasy. OK, thanks for comments:
> >
> >>> diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c
> >>> index b112857..c0f5191 100644
> > ...
> >>> + if (memchr(buf->data, '%', buf->len))
> >>> + goto next;
> >>
> >> Why are you looking for a '%' ?
> >
> > Would it have been clearer if I'd moved the IPV6_SCOPE_DELIMITER define
> > to a common header? I don't think that has any place in the nfs
> > protocol. And we've got less trust in the address we're parsing here
> > (which came across the wire) then we would in a mount commandline.
>
> OK, so you wanted a scope delimiter. Why do you want to punt IPv6
> addresses that have a scope delimiter? Sorry to be dense.
The thing we're parsing here is a hostname that the server returned to
us. It should be either a dns name (which we don't handle yet) or an ip
address. The scope-delimiter thing isn't legal.
> Are you just looking for "illegal" or confusing characters? The
> address parser should handle all that and give you an AF_UNSPEC
> address if the string had any weirdness in it.
At least in the case of the scope delimiter it looks like the address
parser actually tries to do something with it. We don't want that.
> Otherwise, if the returned sockaddr is an IPv6 address, can you just
> check if the sin6_scope_ip field is not zero?
Oh, sure, that'd be OK too.
Honestly in the perfect world I'd rather be able to call a function that
accepted just ip addresses, not whatever odd appendages we also allow on
the mount commandline, on the off-chance that someone decides to add
something even odder some day and doesn't realize the parser also
handles untrusted data from the network.
--b.
next prev parent reply other threads:[~2008-08-20 20:47 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-14 22:30 [PATCH] nfs: Fix misparsing of nfsv4 fs_locations attribute J. Bruce Fields
2008-08-15 16:59 ` Chuck Lever
2008-08-15 22:00 ` Chuck Lever
2008-08-20 20:08 ` J. Bruce Fields
2008-08-20 20:10 ` [PATCH 1/4] nfs: break up nfs_follow_referral J. Bruce Fields
2008-08-20 20:10 ` [PATCH 2/4] nfs: replace while loop by for loops in nfs_follow_referral J. Bruce Fields
2008-08-20 20:10 ` [PATCH 3/4] nfs: prepare to share nfs_set_port J. Bruce Fields
2008-08-20 20:10 ` [PATCH 4/4] nfs: Fix misparsing of nfsv4 fs_locations attribute J. Bruce Fields
2008-08-20 20:23 ` [PATCH 3/4] nfs: prepare to share nfs_set_port Chuck Lever
[not found] ` <76bd70e30808201323h32debdeaj31577cd19b87612e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-20 21:03 ` J. Bruce Fields
2008-08-20 20:19 ` [PATCH] nfs: Fix misparsing of nfsv4 fs_locations attribute Chuck Lever
[not found] ` <76bd70e30808201319j7b59de5gc912fcd01594e8-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-20 20:47 ` J. Bruce Fields [this message]
2008-08-20 21:19 ` Chuck Lever
[not found] ` <76bd70e30808201419g5171d7eob7e6b57dd735e07d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-20 21:29 ` J. Bruce Fields
2008-08-20 22:07 ` Chuck Lever
[not found] ` <76bd70e30808201507l44c85d08o3ec4e8eeb7edda5e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-20 23:30 ` J. Bruce Fields
2008-08-21 2:00 ` Chuck Lever
[not found] ` <76bd70e30808201900r699ca044o884584ecedc6a799-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-21 20:46 ` J. Bruce Fields
2008-08-21 22:22 ` Chuck Lever
[not found] ` <76bd70e30808211522k7cb6846fs4e371c8003320fe7-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-21 22:54 ` J. Bruce Fields
2008-08-21 23:05 ` Chuck Lever
[not found] ` <76bd70e30808211605j3c32cc44v440c19e5fe81bdc9-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-22 18:25 ` Chuck Lever
-- strict thread matches above, loose matches on Subject: below --
2008-05-09 1:19 referrals J. Bruce Fields
2008-05-09 5:10 ` referrals Trond Myklebust
2008-05-09 15:27 ` referrals J. Bruce Fields
2008-05-09 16:52 ` referrals J. Bruce Fields
2008-05-09 17:12 ` referrals J. Bruce Fields
2008-05-09 23:59 ` [PATCH] nfs: Fix misparsing of nfsv4 fs_locations attribute J. Bruce Fields
2008-05-10 0:15 ` Benny Halevy
2008-05-10 1:06 ` J. Bruce Fields
2008-05-10 2:29 ` Chuck Lever
2008-05-10 17:32 ` Trond Myklebust
2008-05-10 23:50 ` Chuck Lever
2008-05-11 1:07 ` david m. richter
[not found] ` <1d07ca700805101807s7c034b08sc531993aa81010b2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-16 19:53 ` J. Bruce Fields
2008-05-17 2:25 ` Chuck Lever
2008-05-18 15:22 ` Chuck Lever
2008-05-20 2:47 ` J. Bruce Fields
2008-05-20 16:54 ` Chuck Lever
2008-05-20 19:32 ` Trond Myklebust
2008-05-20 19:38 ` Chuck Lever
2008-05-20 19:42 ` Trond Myklebust
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080820204751.GE21226@fieldses.org \
--to=bfields@fieldses.org \
--cc=chucklever@gmail.com \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox