Re: bind update error?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



| From: Mitch <mitch48@xxxxxxxxxxxxx>

| If you are running a name server check some things.
| You have a new /etc/sysconfig/named file
| and the line 224 in  /usr/sbin/bind-chroot-admin
| is making a test in this context:
| 
|     . /etc/sysconfig/named
|     if [ "$ENABLE_ZONE_WRITE" =  [yY1]* ]; then
|         return 0;
|     fi;

That test is bogus in several ways.  Unless the man page expr(1) is
bogus (never trust GNU-generated man pages).

The shell command "[" is supposed to be another name for "expr".
In expr, the binary operator "=" does not take regular expressions.
So the "[yY1]*" makes no sense.  The test does not do what the author
appears to think it will do.

But it is worse than that.  The shell does globbing on this operand
since it isn't quoted.  So [yY1]* would get expanded to the list of
filenames in the current directory whose names start with y, Y, or 1.
If none match it would remain unchanged.  The result would be passed
to the expr.  If it was a list, that would be a mess.  If it were a
single item, it would just be wrong.

My guess is that the current directory has several matching files and
the resulting list provokes a syntax error message from expr.

Perhaps the correct test is
      if [ "$ENABLE_ZONE_WRITE" : '[yY1]*' ]; then
                                ^ ^      ^

Whoever wrote this script cannot have tested the "then" path of this
if.

I've added a Bugzilla entry:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=241608


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux