fix in commitid 100576F1D4100EFF065

** Changed in: mksh
       Status: New => Fix Committed

-- 
You received this bug notification because you are a member of mksh
Mailing List, which is subscribed to mksh.
Matching subscriptions: mkshlist-to-mksh-bugmail
https://bugs.launchpad.net/bugs/1380389

Title:
  x=<< functionality cannot be used in functions

Status in mksh:
  Fix Committed

Bug description:
  Several bugs with this construct:

  x=<<EOF
  foo
  EOF

  x+=<<
  foo
  <<

  1. It cannot be used in functions: assignment is done at parse time
  2. It uses ATEMP of parse time, which is gone at runtime in functions
     ⇒ hides first bug unless exec.c alloc(z * 2 + n, ATEMP) → APERM
  3. Size calculations not fully checked, one too big
     ⇒ (z-1) * 2 + 1 /* EOS */ + n

  Ad 1:

  (sid-amd64)tglase@tglase:~/b $ ./mksh ~/x
  a
  abla5424 bar
  abla5424 bar bla5424 bar
  function bar {
          x+=\b\l\a\5\4\2\4\ \b\a\r\

  }
  (sid-amd64)tglase@tglase:~/b $ cat ~/x
  function bar {
  x+=<<
  bla$RANDOM bar
  <<
  }
  x=a
  echo $x
  bar
  echo $x
  bar
  echo $x
  typeset -f bar

  Substitution happens at first use:

  (sid-amd64)tglase@tglase:~/b $ ./mksh ~/x2                                    
                                  
  function bar {
          x=<<
  bla$RANDOM bar
  <<

  } 
  function bar {
          x=\b\l\a\1\2\2\8\1\ \b\a\r\
   
  } 
  (sid-amd64)tglase@tglase:~/b $ /bin/mksh ~/x2                                 
                                  
  function bar {
          x=<<
  bla$RANDOM bar
  <<

  } 
  function bar {
          x=\b\l\a\2\6\7\7\9\ \b\a\r\
   
  } 
  (sid-amd64)tglase@tglase:~/b $ cat ~/x2                                       
                                  
  function bar {
  x=<<
  bla$RANDOM bar
  <<
  }
  typeset -f bar
  bar
  typeset -f bar

  So this is even worse than thought, the ATEMP context is the one from
  the first use of the function…

  This was introduced in R40, when the x=<< syntax was added.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mksh/+bug/1380389/+subscriptions

Reply via email to