Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14070

[BUG] 'unset' fails silently under specific conditions

From Martijn Dekker <martijn@inlv.org>
Newsgroups gnu.bash.bug
Subject [BUG] 'unset' fails silently under specific conditions
Date 2018-05-01 18:45 +0200
Message-ID <mailman.13212.1525193155.27995.bug-bash@gnu.org> (permalink)
References <a16a34cf-eea7-16b8-76d8-e05d0fe2cc32@inlv.org>

Show all headers | View raw


Op 26-04-18 om 04:51 schreef Martijn Dekker:
> I've also succeeded in making 'unset -v' fail silently for a variable 
> that is so exported, but I've so far been unable to track down a 
> specific reproducer that is simple enough to post here.

Here is that reproducer. The following appears to be the minimum 
necessary to consistently make 'unset' silently fail on bash 4.2.45, 
4.3.30, 4.4.19 and current git. (I confirmed the bug is *not* present on 
bash 4.0.38, 3.2.48, 3.1.0, 3.0.16 and 2.05b.)

POSIXLY_CORRECT=y
func1() {
   var=1
   var=2 :       # or 'var=2 return', or another special builtin
}
func2() {
   func1
   unset -v var  # bug: fails silently
}
func2
echo ${var+"BUG: still set"}

Output: 'BUG: still set'
Expected output: none

It appears that it must have one function calling another, and that 
other function having an assignment preceding a special builtin, for 
'unset' to fail silently for the variable so assigned.

Thanks,

- M.

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

[BUG] 'unset' fails silently under specific conditions Martijn Dekker <martijn@inlv.org> - 2018-05-01 18:45 +0200

csiph-web