From: "J. Bruce Fields" <firstname.lastname@example.org> To: Kees Cook <email@example.com> Cc: firstname.lastname@example.org, email@example.com Subject: Re: [PATCH 08/16] nfsd: escape high characters in binary data Date: Thu, 27 Jun 2019 16:21:24 -0400 Message-ID: <20190627202124.GC16388@fieldses.org> (raw) In-Reply-To: <20190626162149.GB4144@fieldses.org> On Wed, Jun 26, 2019 at 12:21:49PM -0400, J. Bruce Fields wrote: > On Mon, Jun 24, 2019 at 05:05:12PM -0400, J. Bruce Fields wrote: > > On Sat, Jun 22, 2019 at 01:22:56PM -0700, Kees Cook wrote: > > > On Sat, Jun 22, 2019 at 03:00:58PM -0400, J. Bruce Fields wrote: > > > > The logic around ESCAPE_NP and the "only" string is really confusing. I > > > > started assuming I could just add an ESCAPE_NONASCII flag and stick " > > > > and \ into the "only" string, but it doesn't work that way. > > > > > > Yeah, if ESCAPE_NP isn't specified, the "only" characters are passed > > > through. It'd be nice to have an "add" or a clearer way to do actual > > > ctype subsets, etc. If there isn't an obviously clear way to refactor > > > it, just skip it for now and I'm happy to ack your original patch. :) > > > > There may well be some simplification possible here.... There aren't > > really many users of "only", for example. I'll look into it some more. > > The printk users are kind of mysterious to me. I did a grep for > > git grep '%[0-9.*]pE' > > which got 75 hits. All of them for pE. I couldn't find any of the > other pE[achnops] variants. pE is equivalent to ESCAPE_ANY|ESCAPE_NP. > Confusingly, ESCAPE_NP doesn't mean "escape non-printable", it means > "don't escape printable". So things like carriage returns aren't > escaped. No, I was confused: "\n" is non-printable according to isprint(), so ESCAPE_ANY_NP *will* escape it. So this isn't quite so bad. SSIDs are usually printed as '%*pE', so arguably we should be escaping the single quote character too, but at least we're not allowing line breaks through. I don't know about non-ascii. > One of the hits outside wireless code was in drm_dp_cec_adap_status, > which was printing some device ID into a debugfs file with "ID: %*pE\n". > If the ID actually needs escaping, then I suspect the meant to escape \n > too to prevent misparsing that output. And same here, this is OK. --b.
next prev parent reply index Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-20 14:50 [PATCH 00/16] exposing knfsd client state to userspace J. Bruce Fields 2019-06-20 14:51 ` [PATCH 01/16] nfsd: persist nfsd filesystem across mounts J. Bruce Fields 2019-06-20 14:51 ` [PATCH 02/16] nfsd: rename cl_refcount J. Bruce Fields 2019-06-20 14:51 ` [PATCH 03/16] nfsd4: use reference count to free client J. Bruce Fields 2019-06-20 14:51 ` [PATCH 04/16] nfsd: add nfsd/clients directory J. Bruce Fields 2019-06-20 14:51 ` [PATCH 05/16] nfsd: make client/ directory names small ints J. Bruce Fields 2019-06-20 14:51 ` [PATCH 06/16] nfsd4: add a client info file J. Bruce Fields 2019-06-20 14:51 ` [PATCH 07/16] nfsd: copy client's address including port number to cl_addr J. Bruce Fields 2019-06-20 14:51 ` [PATCH 08/16] nfsd: escape high characters in binary data J. Bruce Fields 2019-06-21 17:45 ` bfields 2019-06-21 22:26 ` Kees Cook 2019-06-22 19:00 ` J. Bruce Fields 2019-06-22 20:22 ` Kees Cook 2019-06-24 21:05 ` J. Bruce Fields 2019-06-26 16:21 ` J. Bruce Fields 2019-06-27 4:16 ` Kees Cook 2019-06-27 15:23 ` J. Bruce Fields 2019-06-27 20:21 ` J. Bruce Fields [this message] 2019-06-28 3:58 ` Kees Cook 2019-06-28 16:33 ` J. Bruce Fields 2019-07-10 22:09 ` J. Bruce Fields 2019-07-11 1:54 ` Kees Cook 2019-08-06 12:19 ` Andy Shevchenko 2019-08-06 18:50 ` J. Bruce Fields 2019-08-07 9:00 ` Andy Shevchenko 2019-08-08 11:28 ` bfields 2019-08-27 13:36 ` Andy Shevchenko 2019-06-20 14:51 ` [PATCH 09/16] nfsd: add more information to client info file J. Bruce Fields 2019-06-20 14:51 ` [PATCH 10/16] nfsd4: add file to display list of client's opens J. Bruce Fields 2019-06-20 14:51 ` [PATCH 11/16] nfsd: show lock and deleg stateids J. Bruce Fields 2019-06-20 14:51 ` [PATCH 12/16] nfsd4: show layout stateids J. Bruce Fields 2019-06-20 14:51 ` [PATCH 13/16] nfsd: create get_nfsdfs_clp helper J. Bruce Fields 2019-06-20 14:51 ` [PATCH 14/16] nfsd: allow forced expiration of NFSv4 clients J. Bruce Fields 2019-06-20 14:51 ` [PATCH 15/16] nfsd: create xdr_netobj_dup helper J. Bruce Fields 2019-06-20 14:51 ` [PATCH 16/16] nfsd: decode implementation id J. Bruce Fields 2019-06-21 18:13 ` [PATCH 00/16] exposing knfsd client state to userspace bfields 2019-06-21 19:25 ` Anna Schumaker 2019-06-21 22:08 ` J. Bruce Fields
Reply instructions: You may reply publically 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=20190627202124.GC16388@fieldses.org \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ /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
Linux-NFS Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-nfs/0 linux-nfs/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-nfs linux-nfs/ https://lore.kernel.org/linux-nfs \ firstname.lastname@example.org email@example.com public-inbox-index linux-nfs Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-nfs AGPL code for this site: git clone https://public-inbox.org/ public-inbox