On Fri, Jun 30, 2023 at 03:28:36AM +1000, Martin D Kealey wrote:
> On Thu, 29 Jun 2023 at 19:45, Denys Vlasenko <dvlas...@redhat.com> wrote:
> 
> > IIRC bash used to allow numeric constants of the
> > BASE#DIGITS form even if the DIGITS part was empty.
> > IOW: not only "64#0", but "64#" too was accepted
> > as a valid zero constant.
> >
> > This no longer works in 5.2.15, probably better than
> > former behavior, "64#" looked quite confusing.
> >
> 
> Oh great :-(
> 
> This change will break scripts that use $((10#$somevar)) to cope with
> somevar having leading zeroes OR BEING EMPTY.
> 
> (This is not a security risk as long as (1) the variables are
> sanity-checked to contain nothing but decimal digits (and logically an
> empty string satisfies that condition) or (2) the script runs as the user
> providing the value.)
> 
> Is there any chance this can be reversed before it becomes an official
> release?

This regression has existed since bash 5.1, personally I have been using
$(( 10#0$var ))  instead of  $(( 10#$var ))  for a while, so I didn't
even know  10#  by itself used to be accepted before bash 5.1.

o/
 emanuele6

Reply via email to