On Mon, Sep 24, 2018 at 08:14:22PM +0200, Sven Wolf wrote:
> last weekend I've updated two computers to the amd64 current snapshot.
> At every restart of the computer (after the keyboard mapping is set and
> before the network gets started) following message is displayed:
> /etc/rc[430]: > 0: unexpected '>'
Introduced with

        sbin/sysctl/sysctl.c
        revision 1.235
        date: 2018/09/21 14:31:29;  author: visa;  state: Exp;  lines: +8 -65;  
commitid: IslDoBJmf7mnSkou;
        Stop displaying vfsconf reference counts so that the vfc_refcount field
        can be removed from struct mount.

        As a result of this diff, arrays vfsname[] and vfsvars[] are indexed
        by filesystem typenum. This makes the vfs_typenums[] array redundant.

        OK bluhm@ mpi@

`sysctl -n vfs.mounts.nfs' would print nothing. This had been in snaps
but was reverted with revision 1.236 twelve hours later.

> On a first look, I didn't find an error in /etc/rc on line 430.
396 if [[ $pf != NO ]]; then
...
420 ›       if (($(sysctl -n vfs.mounts.nfs 2>/dev/null) > 0)); then
...
430 fi

`((expr))' is equivalent to `let "expr"' so this reads as `let " > 0"'.

Since rc(8) runs with "Strict Bourne shell mode" off (line 7), such
expressions are always interpreted arithmetically - otherwise it would
silently create or clobber the file named "0".

I haven't checked the code yet but the off-by-N is probably due to
how our ksh accounts for the line number on errors in arithmetic
operations in general. As pasted above, the syntactically surrounding
construct is an `if' condition which happens to end on line 430.

Reply via email to