rc.subr, 1.34.2.22,
breaks amd_map_program="ypcat -k amd.master" in RELENG_6
Mike Makonnen
mtm at FreeBSD.Org
Fri Oct 19 01:47:28 PDT 2007
On Thu, Oct 18, 2007 at 12:59:48PM -0600, John E Hein wrote:
>
> The last diff blob above is the trouble maker.
> The new run_rc_doit() function does this:
>
> + eval "$@"
>
> If you remove the quotes, it starts working again.
>
> Unfortunately, you can have different problems if you don't quote $@
> (for instance, args with spaces become two args). I don't know if
> yar@ added that to address a specific issue or just to be more
> future-proof in terms of quoting. But it breaks if the command
> or args have a newline.
>
> Maybe it's best to just do the echo in /etc/rc.d/amd that I showed in
> the previous email and document that $rc_flags and $command, etc., should
> not have newlines. Here's that patch again:
I agree.
I think that modifying rc.d/amd is the proper solution here. It's probably
a bug that it depends on run_rc_command()'s internal behaviour. Can you
try the following slightly different patch?
Cheers.
--
Mike Makonnen | GPG-KEY: http://people.freebsd.org/~mtm/mtm.asc
mmakonnen @ gmail.com | AC7B 5672 2D11 F4D0 EBF8 5279 5359 2B82 7CD4 1F55
mtm @ FreeBSD.Org | FreeBSD - http://www.freebsd.org
-------------- next part --------------
Index: etc/rc.d/amd
===================================================================
RCS file: /home/ncvs/src/etc/rc.d/amd,v
retrieving revision 1.18
diff -u -r1.18 amd
--- etc/rc.d/amd 18 Oct 2006 15:56:11 -0000 1.18
+++ etc/rc.d/amd 19 Oct 2007 08:35:36 -0000
@@ -34,7 +34,7 @@
[Nn][Oo] | '')
;;
*)
- rc_flags="${rc_flags} `eval ${amd_map_program}`"
+ rc_flags="${rc_flags} `echo $(eval ${amd_map_program})`"
;;
esac
@@ -46,7 +46,8 @@
fi
;;
*)
- rc_flags="-p ${rc_flags} > /var/run/amd.pid 2> /dev/null"
+ rc_flags="-p ${rc_flags}"
+ command_args=" > /var/run/amd.pid 2> /dev/null"
;;
esac
return 0
More information about the freebsd-rc
mailing list