NetBSD-Bugs archive

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

bin/58749: postfix fails due to sh(1) problem



>Number:         58749
>Category:       bin
>Synopsis:       postfix fails due to sh(1) problem
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Oct 12 22:00:00 +0000 2024
>Originator:     Michael van Elst
>Release:        NetBSD 10.99.12
>Organization:
	
>Environment:
	
	
System: NetBSD arnold 10.99.12 NetBSD 10.99.12 (EGGHED64) #7: Sat Oct 12 15:37:22 UTC 2024 mlelstv@slowpoke:/home/netbsd-current/obj.evbarm64-el/scratch/netbsd-current/src/sys/arch/evbarm/compile/EGGHED64 evbarm
Architecture: aarch64
Machine: evbarm
>Description:
Starting postfix fails with

unknown type for $config_directory:d:root:-:755:u in /usr/libexec/postfix/postfix-files

The file is read by the post-install script with:

        exec <$postfix_file || exit 1
        while IFS=: read path type owner group mode flags junk
        do
            IFS="$BACKUP_IFS"
            ...
        done
        IFS="$BACKUP_IFS"

Apparently the IFS variable is not set or not evaluated anymore
for read to split the input.

Changing the line to:

        while { IFS=:; read path type owner group mode flags junk; }

makes postfix start again.

>How-To-Repeat:

% echo 1:2:3 | sh -c 'IFS=: read a b c; echo $a'
1:2:3

Previously this would printed the first field. Now
you have to use something like:

% echo 1:2:3 | sh -c 'IFS=:; read a b c; echo $a'
1

>Fix:
	

>Unformatted:
 	
 	


Home | Main Index | Thread Index | Old Index