diff options
Diffstat (limited to 'miscutils')
| -rw-r--r-- | miscutils/bc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c index 40bb29942..eba8aa272 100644 --- a/miscutils/bc.c +++ b/miscutils/bc.c | |||
| @@ -5174,17 +5174,19 @@ static size_t bc_program_index(char *code, size_t *bgn) | |||
| 5174 | static char *bc_program_name(char *code, size_t *bgn) | 5174 | static char *bc_program_name(char *code, size_t *bgn) |
| 5175 | { | 5175 | { |
| 5176 | size_t i; | 5176 | size_t i; |
| 5177 | char *s, *str = code + *bgn, *ptr = strchr(str, BC_PARSE_STREND); | 5177 | char *s; |
| 5178 | 5178 | ||
| 5179 | s = xmalloc(ptr - str + 1); | 5179 | code += *bgn; |
| 5180 | s = xmalloc(strchr(code, BC_PARSE_STREND) - code + 1); | ||
| 5180 | i = 0; | 5181 | i = 0; |
| 5181 | for (;;) { | 5182 | for (;;) { |
| 5182 | char c = code[(*bgn)++]; | 5183 | char c = *code++; |
| 5183 | if (c == '\0' || c == BC_PARSE_STREND) | 5184 | if (c == BC_PARSE_STREND) |
| 5184 | break; | 5185 | break; |
| 5185 | s[i++] = c; | 5186 | s[i++] = c; |
| 5186 | } | 5187 | } |
| 5187 | s[i] = '\0'; | 5188 | s[i] = '\0'; |
| 5189 | *bgn += i + 1; | ||
| 5188 | 5190 | ||
| 5189 | return s; | 5191 | return s; |
| 5190 | } | 5192 | } |
