diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2009-04-26 15:25:19 +0400 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2009-04-26 15:25:19 +0400 |
commit | 5b7589eb27e748a3d281c0341219cf7435e8b4f1 (patch) | |
tree | b9565d8d331207ed37a3b9c0f654b500839d8ef6 /shell/match.h | |
parent | 80e57eb7d525803bb776e8294483141756b2b2ef (diff) |
hush: fix SEGV in % expansion
function old new delta
expand_variables 2203 2217 +14
Diffstat (limited to 'shell/match.h')
-rw-r--r-- | shell/match.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/shell/match.h b/shell/match.h index 3fc4de340..90597ee54 100644 --- a/shell/match.h +++ b/shell/match.h @@ -2,12 +2,12 @@ PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN -typedef char *(*scan_t)(char *string, char *match, bool zero); +typedef char *(*scan_t)(char *string, char *match, bool match_at_left); -char *scanleft(char *string, char *match, bool zero); -char *scanright(char *string, char *match, bool zero); +char *scanleft(char *string, char *match, bool match_at_left); +char *scanright(char *string, char *match, bool match_at_left); -static inline scan_t pick_scan(char op1, char op2, bool *zero) +static inline scan_t pick_scan(char op1, char op2, bool *match_at_left) { /* # - scanleft * ## - scanright @@ -15,10 +15,10 @@ static inline scan_t pick_scan(char op1, char op2, bool *zero) * %% - scanleft */ if (op1 == '#') { - *zero = true; + *match_at_left = true; return op1 == op2 ? scanright : scanleft; } else { - *zero = false; + *match_at_left = false; return op1 == op2 ? scanleft : scanright; } } |