Bug#923478: initscripts use unsafe `: >` shell command to create files

Cristian Ionescu-Idbohrn cristian.ionescu-idbohrn at axis.com
Fri Apr 5 10:11:26 BST 2019


On Thu, 28 Feb 2019, Thorsten Glaser wrote:
> 
> I’d say that aborting might be preferrable, but I checked your patch.
> 
> In the first case, it’s indeed preferrable to continue the init script
> (and have the two additional error messages from chmod and chgrp, but
> it continue on), and in the second case…
> 
> >Init scripts try to use this for example in the bootclean.sh logic to
> >create /tmp/.clean: there is even code to handle the failure case which
> >unfortunately does not get run, in fact the whole cleanup operation is
> >ended short.
> 
> … this is true: the error handling does not get run.
> 
> So (from a shell maintainer’s PoV) these patches are good and should
> be applied, in time for buster.

Thing is neither the `:' nor the `true' commands are needed.  To 
truncate a file it's sufficient to redirect _nothing_ to that file.

	 $ dash -c '>/tmp/dir/; echo $?; echo hello world;'         
	dash: 1: cannot create /tmp/dir/: Is a directory
	2
	hello world

The real problem is that a failing redirection is _not_ error handled 
(in the /etc/init.d/bootmisc.sh case).


Cheers,

-- 
Cristian




More information about the Debian-init-diversity mailing list