[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: bug searching for 'attr==+=' (ITS#267)



Noel Burton-Krahn wrote:
> 
> Aw c'mon, man!  You thinky I no speaky /bin/sh?

$ touch =+=
$ for i in "*=+=*" ; do
> echo "$i"
> echo $i
> done

*=+=*
=+=

Some versions of /bin/sh may be even less kind.  As I do not know, nor
care to know, which varient of sh you are using, I just wanted to rule
it out as the source of the problem.   Thanks for retesting the fixed
script.

> Have you run the script yourself?

No.  Your script had obvious bugs (most notably typos of in the LDIF).
I ran a set of compariable tests as I described in my prior response.
As they ran correctly, I reviewed your scripts and found variable
expansion bug.  Eliminating these bugs was, to me, the logical next
step in tracking down the problem.

Now that you have eliminated most of these (you still have a typo
in your LDIF), I will reexamine this issue.   I just ran your tests
as is and they returned results just as I would expect them to.

> Hallvard B Furuseth <openldap-its@OpenLDAP.org> suggested deleting the
> "case '+':" line from servers/slapd/filterentry.c.  I tried it and the
> bug went away.  However, deleting lines from unfamiliar code makes me
> nervous.  Is that the right place to fix this bug?  Here's the diff:

Well, it's likely a hint as to the problem.  (I saw this after I sent
my previous response).  As to whether or not the fix is valid needs to
be reviewed.  It's likely a REGEX compatibility issue which means
we'll likely have to do some research before determining what exactly
to commit.

Which implementation of POSIX regex are you using?  You can likely
determine this from examining /usr/include/regex.h.

Kurt