Bug 484348
| Summary: | Error parsing $(...) | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 5 | Reporter: | Tomas Smetana <tsmetana> | ||||||||
| Component: | zsh | Assignee: | James Antill <james.antill> | ||||||||
| Status: | CLOSED ERRATA | QA Contact: | James Antill <james.antill> | ||||||||
| Severity: | medium | Docs Contact: | |||||||||
| Priority: | medium | ||||||||||
| Version: | 5.1 | CC: | mfabry, syeghiay, tao | ||||||||
| Target Milestone: | rc | ||||||||||
| Target Release: | --- | ||||||||||
| Hardware: | All | ||||||||||
| OS: | Linux | ||||||||||
| Whiteboard: | |||||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||||
| Doc Text: | Story Points: | --- | |||||||||
| Clone Of: | |||||||||||
| : | 496791 (view as bug list) | Environment: | |||||||||
| Last Closed: | 2009-05-06 15:31:42 UTC | Type: | --- | ||||||||
| Regression: | --- | Mount Type: | --- | ||||||||
| Documentation: | --- | CRM: | |||||||||
| Verified Versions: | Category: | --- | |||||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||||
| Embargoed: | |||||||||||
| Attachments: |
|
||||||||||
Created attachment 331118 [details]
Proposed patch
Change in the (...) parsing function: if the '#' is found, all the characters until the newline lose their special meaning.
Patch has been sent upstream: http://www.zsh.org/mla/workers/2009/msg00396.html Created attachment 333448 [details] Improved patch The previous patch didn't really care about the context of the '#' character which might have caused problems in cases where it was not meant as beginning of a comment. I'm attaching the version that was committed upstream: http://zsh.cvs.sourceforge.net/viewvc/zsh/zsh/Src/lex.c?r1=1.49&r2=1.50 Created attachment 333724 [details] Even more improved patch... There was still a small problem with the latest patch: http://www.zsh.org/mla/workers/2009/msg00408.html. (upstream lex.c: http://zsh.cvs.sourceforge.net/viewvc/zsh/zsh/Src/lex.c?revision=1.51&view=markup#l_1799) An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2009-0463.html |
Description of problem: Consider the following script: #!/bin/zsh # Comment containing ' VAR=$( echo a # Comment containing ' ) echo $VAR The script is syntactically correct but zsh throws an error executing it. Version-Release number of selected component (if applicable): zsh-4.2.6-2 (reproduced also with Fedora's zsh-4.3.6-5 version) How reproducible: always Steps to Reproduce: 1. run the script above Actual results: parse error near `VAR=$(' Expected results: a Additional info: ksh and bash are able to run the script without error. No error appears when the $(...) command substitution is replaced with `...`. I think there's a bug in parsing the content in the round brackets: the '\'' character is treated as special even when it appears in a comment.