Insufficient memory allocation and unnecessary quotes insertion
---------------------------------------------------------------

                 Key: DAEMON-118
                 URL: https://issues.apache.org/jira/browse/DAEMON-118
             Project: Commons Daemon
          Issue Type: Bug
    Affects Versions: 1.0.1
            Reporter: Jack Cai


When reading the source file rprocess.c in Commons Daemon procrun project, I 
found a defect in the method __apxStrQuote() and apxProcessSetCommandArgsW().

In __apxStrQuote(), I don't think it is necessary to add quotes around a 
command line argument whenever a space/tab/quote/backslash is found. Usually 
users add quote around an argument by themselves if the argument contains 
space. So adding anothe pair of quotes around the argument only get things 
wrong. I'd suggest the quote is only inserted when there is space/tab but no 
quote found in the argument. Also, it is not necessary to convert backslash 
into double backslash for a string that's already in memory.

In apxProcessSetCommandArgsW(), the algorithm for calculating the buffer length 
is incorrect, as it does take the backslash to double backslash expansion. But 
if the above suggestion for __apxStrQuote() is accepted, the defect will 
disappear, and there is also no need to allocate memory for each quote 
character.

I'll attach the suggested patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to