Uploaded image for project: 'Commons Daemon'
  1. Commons Daemon
  2. DAEMON-118

Insufficient memory allocation and unnecessary quotes insertion

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.0.1
    • 1.0.2
    • None
    • None

    Description

      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.

      Attachments

        1. DAEMON-118_Jack.patch
          2 kB
          Jun Jie Cai

        Activity

          People

            Unassigned Unassigned
            caijunj Jun Jie Cai
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: