All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
To: Jack Miller <jack-jZyo8ZIaZD9AfugRpC6u6w@public.gmane.org>
Cc: devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] Properly handle \0 delimited string lists
Date: Fri, 13 Jun 2014 20:16:35 +1000	[thread overview]
Message-ID: <20140613101635.GA5335@voom.fritz.box> (raw)
In-Reply-To: <20140612224728.GA17938-O8SCTCEbm15XsEFxtoW7CMxtgHpCUUYS@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2108 bytes --]

On Thu, Jun 12, 2014 at 05:47:28PM -0500, Jack Miller wrote:
> On Wed, Jun 11, 2014 at 11:10:39PM +1000, David Gibson wrote:
> > Hi Jack,
> > 
> > Long time no see :).
> 
> Yeah, I was pretty pleased to have an excuse to send something your way =)
> 
> > 
> > On Tue, Jun 10, 2014 at 02:57:36PM -0500, Jack Miller wrote:
> > > reserved-names="res1\0res2\0res3";
> > > 
> > > Is valid DTS. This one-liner expands data based on the len given by the lexer
> > > instead of strlen.
> > > 
> > > Without this patch, realloc gets confused and hangs. For example:
> > > 
> > > *** Error in `./dtc': realloc(): invalid next size: 0x0000000001961670
> > > ***
> > 
> > So.. the patch certainly isn't wrong, and is arguably safer than the
> > current version.
> > 
> > But.. I haven't been able to reproduce the problem, and I don't really
> > see how it would occur in the first place.
> > 
> > The thing we're taking a strlen of is the input with it's escapes, so
> > it won't have NULs, just backslashes and 0 digits.
> > 
> > Or am I missing something?
> 
> Sorry, I was unclear. The \0 was my short hand for a real embedded NULL
> character, which may be intentionally wrong-headed, but I don't think it's
> invalid (or if it is invalid, should at least not cause the compiler to do
> bad things).

Ah, I see.

Yes, NULs in the input is a bit perverse, but I don't see any reason
it should be invalid.

> In refining my testcase I realized that it doesn't fail on realloc with all
> bad input, but it does generate mangled output otherwise.
> 
> I've uploaded two short .dts snippets just because pasting NULLs into an
> email seems like a bad idea:
> 
> http://codezen.org/static/broken-dts.tar.gz
> 
> One causes the realloc, the other causes the mangled output on git HEAD. Both
> are working properly with my patch.

Ok.  Could you make those into a testcase?

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

      parent reply	other threads:[~2014-06-13 10:16 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-10 19:57 [PATCH] Properly handle \0 delimited string lists Jack Miller
     [not found] ` <1402430256-8359-1-git-send-email-jack-jZyo8ZIaZD9AfugRpC6u6w@public.gmane.org>
2014-06-11 13:10   ` David Gibson
2014-06-12 22:47     ` Jack Miller
     [not found]       ` <20140612224728.GA17938-O8SCTCEbm15XsEFxtoW7CMxtgHpCUUYS@public.gmane.org>
2014-06-13 10:16         ` David Gibson [this message]

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=20140613101635.GA5335@voom.fritz.box \
    --to=david-xt8fgy+axnrb3ne2bgzf6laj5h9x9tb+@public.gmane.org \
    --cc=devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=jack-jZyo8ZIaZD9AfugRpC6u6w@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.