zsh-workers
 help / color / mirror / code / Atom feed
From: Peter Stephenson <p.stephenson@samsung.com>
To: Zsh hackers list <zsh-workers@zsh.org>
Subject: Re: Cores almost on demand in patcompile()
Date: Thu, 20 Oct 2016 11:56:34 +0100	[thread overview]
Message-ID: <20161020115634.19683b37@pwslap01u.europe.root.pri> (raw)
In-Reply-To: <20161020114216.020eb53e@pwslap01u.europe.root.pri>

On Thu, 20 Oct 2016 11:42:16 +0100
Peter Stephenson <p.stephenson@samsung.com> wrote:
> On Thu, 20 Oct 2016 12:30:50 +0200
> Sebastian Gniazdowski <sgniazdowski@gmail.com> wrote:
> > Valgrind points at patadd(NULL, 0, nmeta, 0). Wonder why not to its
> > interior? But to all logic, problem should be inside patadd() because
> > nothing else near dereferences a pointer. So there might be two
> > problems. Debugger didn't report inaccessible memory when I did
> > step-over on the patadd(), maybe memory is accessible but invalid from
> > other reason recognized by Valgrind.
> 
> Just to be sure, could you confirm the problem goes away if you change
> line 292 of pattern.c
> 
> /* Default size for pattern buffer */
> #define P_DEF_ALLOC 256
> 
> to
> 
> /* Default size for pattern buffer */
> #define P_DEF_ALLOC 512
> 
> ?  That's not a fix, it's just putting off the problem, but if it's
> initially allocating something larger than what your pattern needs I'd
> expect the crash not to happen.

I'm now starting to wonder if the realloc is a red herring and the key
point is this...

		 * Careful in case we've overwritten the node for the next ptr.

It's a long time since I did this but if the P_PURESTR flag is set,
I don't think there can be more than one P_EXACTLY.  So the solution may
be to break out of the for loop at the end of the

		    if (P_OP(pscan) == P_EXACTLY) {
		        /* .... */
			break;      /* <- here... */
		    }

immediately after line 692 in the modified code since the "next" can't
be relevant any more.

pws


  reply	other threads:[~2016-10-20 10:56 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-09  9:00 Sebastian Gniazdowski
2016-10-09  9:16 ` Sebastian Gniazdowski
2016-10-09 10:15   ` Sebastian Gniazdowski
2016-10-09 16:09     ` Sebastian Gniazdowski
2016-10-10 15:31       ` Sebastian Gniazdowski
2016-10-11  2:46         ` Bart Schaefer
2016-10-11  2:53           ` Bart Schaefer
2016-10-11  6:51           ` type-checking for metafiedness? (was: Re: Cores almost on demand in patcompile()) Daniel Shahaf
2016-10-13 10:22             ` Peter Stephenson
2016-10-13 13:46               ` Bart Schaefer
2016-10-14  6:36                 ` Daniel Shahaf
2016-10-14 16:53                   ` Peter Stephenson
2016-10-14 17:28                     ` Bart Schaefer
2016-10-14 20:08                     ` Daniel Shahaf
2016-10-14 23:04                   ` Oliver Kiddle
2016-10-15  8:30                     ` Daniel Shahaf
     [not found]                       ` <CAH+w=7bONQfKge=kWwFasKNXSu7510d8c+1aoYEeyUbozf_P7A@mail.gmail.com>
2016-10-15 18:35                         ` Fwd: " Bart Schaefer
2016-10-13  9:43           ` Cores almost on demand in patcompile() Peter Stephenson
2016-10-19 11:14             ` Sebastian Gniazdowski
2016-10-19 13:14               ` Peter Stephenson
     [not found]                 ` <CAKc7PVBhHFUWbMobAeDptgXmZ=S6RVsuNB7Qwsq555Srya_5qg@mail.gmail.com>
2016-10-20  8:56                   ` Bart Schaefer
2016-10-20  9:32                   ` Peter Stephenson
2016-10-20  9:56                     ` Sebastian Gniazdowski
2016-10-20 10:18                       ` Peter Stephenson
2016-10-20 10:30                         ` Sebastian Gniazdowski
2016-10-20 10:42                           ` Peter Stephenson
2016-10-20 10:56                             ` Peter Stephenson [this message]
2016-10-20 11:03                               ` Peter Stephenson
2016-10-20 11:09                                 ` Sebastian Gniazdowski
2016-10-20 11:23                                   ` Peter Stephenson

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=20161020115634.19683b37@pwslap01u.europe.root.pri \
    --to=p.stephenson@samsung.com \
    --cc=zsh-workers@zsh.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.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).