Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Oct 2002 14:10:04 -0700 (PDT)
From:      Ian Dowse <iedowse@maths.tcd.ie>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/43865: unterminated string in rc.conf leaves system unuseable / disk readonly 
Message-ID:  <200210092110.g99LA4TR004578@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/43865; it has been noted by GNATS.

From: Ian Dowse <iedowse@maths.tcd.ie>
To: Giorgos Keramidas <keramida@freebsd.org>
Cc: Ceri Davies <ceri@freebsd.org>, walterk1@earthlink.net,
	bug-followup@freebsd.org
Subject: Re: bin/43865: unterminated string in rc.conf leaves system unuseable / disk readonly 
Date: Wed, 09 Oct 2002 22:00:03 +0100

 In message <20021009193608.GF15316@hades.hell.gr>, Giorgos Keramidas writes:
 >One of the ideas I had and never actually got around to implementing
 >was a shell wrapper around $EDITOR that allows root to edit rc.conf
 >and then checks to see that sh(1) can still parse the resulting file.
 
 Yes, that sounds like it would help a lot. I was thinking more of
 a modification to the code that sources rc.conf to instead do
 something like:
 
 	file=/etc/rc.conf
 
 	lineno=0
 	while read line; do
 		lineno=$(expr ${lineno} + 1)
 		if (eval "${line}" > /dev/null 2>&-); then
 			eval "${line}"
 		else
 			echo "${file}:${lineno}:" `eval "${line}" 2>&1` 1>&2
 		fi
 	done < "${file}"
 
 This causes each line in rc.conf to be treated completely separately,
 and gives almost-sensible, non-fatal errors for failures.
 
 	/etc/rc.conf:5: eval: 1: Syntax error: Unterminated quoted string
 	/etc/rc.conf:45: eval: 1: Syntax error: Unterminated quoted string
 
 It does end up forking a lot of sub-shells and evaluates each line
 multiple times though, so could do with some improvement...
 
 Ian

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210092110.g99LA4TR004578>