On Thu, 11 Apr 2019, Dmitry Bogatov wrote:
> 
> Warning message and make do_start return 1, I guess.

This is what I can come up with:

>From 1ae8cb1cb6a306281ccddfa7aa67c13f6cb23ab5 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <c...@axis.com>
Date: Thu, 11 Apr 2019 14:36:47 +0200
Subject: [PATCH] Error handle redirection used to truncate /var/run/wtmp

Signed-off-by: Cristian Ionescu-Idbohrn <c...@axis.com>
---
 bootmisc.sh | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/bootmisc.sh b/bootmisc.sh
index ad60f2a..e01a218 100755
--- a/bootmisc.sh
+++ b/bootmisc.sh
@@ -26,11 +26,18 @@ do_start () {
        esac
 
        # Create /var/run/utmp so we can login.
-       : > /var/run/utmp
-       if grep -q ^utmp: /etc/group
-       then
-               chmod 664 /var/run/utmp
-               chgrp utmp /var/run/utmp
+       utmp=/var/run/utmp
+       if >$utmp; then
+               if grep -q ^utmp: /etc/group
+               then
+                       chmod 664 $utmp ||
+                               echo "Warning: failed to chmod $utmp" >&2
+                       chgrp utmp $utmp ||
+                               echo "Warning: failed to chgrp $utmp" >&2
+               fi
+       else
+               echo "Error: failed to truncate $utmp" >&2
+               exit 4
        fi
 
        # Remove bootclean's flag files.
-- 
2.20.1


> By the way, is
> 
>       # Create /var/run/utmp so we can login
>       
> comment still accurate? I am confident, that `fgetty' does not check 
> for presence of /var/run/utmp, and at glance, I can't find code in 
> src:util-linux, that would prevent login when /var/run/utmp is 
> absent.

I really can't say.  I suppose it depends on which `login' is used?


Cheers,

-- 
Cristian

Reply via email to