-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 7/6/15 6:46 PM, Hanno Böck wrote:
> Hi,
> 
> With Address Sanitizer I discovered another out of bounds read issue in
> bash. This is different from the issue I recently reported here and
> for which Chet already provided a patch:
> https://lists.gnu.org/archive/html/bug-bash/2015-06/msg00089.html
> 
> To reproduce:
> a) compile bash with CFLAGS="-fsanitize=address -g"
> b) type in a=/ a
> c) go back with the cursor behind the backslash and press tab

Thanks for the report.  I've attached a patch that should address the
problem.  It's not in bash-4.4-alpha.

Chet

- -- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iEYEARECAAYFAlWgDY8ACgkQu1hp8GTqdKtyOgCfXOaZfcweBw37AI0N4mnFW/Rz
gj4AoJYpm34tn/7lg+ChxV3TDq0WlTQl
=+rN7
-----END PGP SIGNATURE-----
*** ../bash-4.4-alpha/bashline.c	2015-06-23 14:35:10.000000000 -0400
--- bashline.c	2015-07-07 15:17:58.000000000 -0400
***************
*** 1524,1527 ****
--- 1524,1528 ----
        os = start;
        n = 0;
+       was_assignment = 0;
        s = find_cmd_start (os);
        e = find_cmd_end (end);
***************
*** 1534,1537 ****
--- 1535,1544 ----
  	      break;
  	    }
+ 	  /* Or past point if point is within an assignment statement */
+ 	  else if (was_assignment && s > rl_point)
+ 	    {
+ 	      s1 = s = e1;
+ 	      break;
+ 	    }
  	  /* Skip over assignment statements preceding a command name.  If we
  	     don't find a command name at all, we can perform command name

Reply via email to