Bash-4.2 patch 39

This commit is contained in:
Chet Ramey 2012-11-02 10:06:20 -04:00
commit 11d0fdf779
2 changed files with 11 additions and 1 deletions

10
expr.c
View file

@ -1009,6 +1009,12 @@ expr_streval (tok, e, lvalue)
arrayind_t ind; arrayind_t ind;
#endif #endif
/*itrace("expr_streval: %s: noeval = %d", tok, noeval);*/
/* If we are suppressing evaluation, just short-circuit here instead of
going through the rest of the evaluator. */
if (noeval)
return (0);
/* [[[[[ */ /* [[[[[ */
#if defined (ARRAY_VARS) #if defined (ARRAY_VARS)
v = (e == ']') ? array_variable_part (tok, (char **)0, (int *)0) : find_variable (tok); v = (e == ']') ? array_variable_part (tok, (char **)0, (int *)0) : find_variable (tok);
@ -1182,6 +1188,10 @@ readtok ()
#endif /* ARRAY_VARS */ #endif /* ARRAY_VARS */
*cp = '\0'; *cp = '\0';
/* XXX - watch out for pointer aliasing issues here */
if (curlval.tokstr && curlval.tokstr == tokstr)
init_lvalue (&curlval);
FREE (tokstr); FREE (tokstr);
tokstr = savestring (tp); tokstr = savestring (tp);
*cp = c; *cp = c;

View file

@ -25,6 +25,6 @@
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
looks for to find the patch level (for the sccs version string). */ looks for to find the patch level (for the sccs version string). */
#define PATCHLEVEL 38 #define PATCHLEVEL 39
#endif /* _PATCHLEVEL_H_ */ #endif /* _PATCHLEVEL_H_ */