[Libguestfs] [PATCH] dib: handle unsetting functions in environment

Pino Toscano ptoscano at redhat.com
Wed Aug 12 14:53:19 UTC 2015


On Wednesday 12 August 2015 10:33:00 John Eckersberg wrote:
> If a function name, with its trailing parentheses, is in the
> environment , trying to unset it will error out with a message of "not
> a valid identifier".  In this case, try to unset it again with the -f
> option which can handle the parentheses in the supplied identifier.
> ---
>  dib/dib.ml | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/dib/dib.ml b/dib/dib.ml
> index d730527..519da51 100644
> --- a/dib/dib.ml
> +++ b/dib/dib.ml
> @@ -283,7 +283,7 @@ if [ -z \"$preserve_env\" ]; then
>    for envvar in `env | grep '^\\w' | cut -d= -f1`; do
>      case \"$envvar\" in
>        PATH | USER | USERNAME | HOSTNAME | TERM | LANG | HOME | SHELL | LOGNAME ) ;;
> -      *) unset $envvar ;;
> +      *) unset $envvar || unset -f $envvar;;

The diagnosis is good, although the fix could be improved: if bash
functions need to be named as "BASH_FUNC_*", I'd match on that in the
switch case above, and use -f for them.

Thanks,
-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20150812/e91ebf52/attachment.sig>


More information about the Libguestfs mailing list