[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: segfault w/ localvar_inherit and associative array insert

From: Chet Ramey
Subject: Re: segfault w/ localvar_inherit and associative array insert
Date: Fri, 27 Jul 2018 11:38:08 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

On 7/26/18 3:15 PM, Grisha Levit wrote:
> It seems that in general the array type is inherited just fine, there is an
> issue only in the case that:
>    * the `A' attribute is inherited but not explicitly supplied
>    * we are creating the local variable with the `declare' command
>      (i.e. it is not already an existing local variable)
>    * we are performing a compound assignment/append operation in the
>      same declare command

Exactly. Look at the third point. A statement like `declare x+=( [0]=foo)'
means to create a local array variable, since the -A option is not
supplied. Bash is consistent in defaulting to indexed array variables when
you don't specify -A and assign a value using the compound assignment
syntax. So you create a local indexed array variable, and when you attempt
to inherit the value from a global associative array before performing any
specified assignment, you should either ignore the inherited value or throw
an error.

``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    address@hidden    http://tiswww.cwru.edu/~chet/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]