DJ Lucas wrote:
> On 01/22/2012 10:43 AM, Bruce Dubbs wrote:
>> Dean Takemori wrote:
>>> lfs/lib/services/init-functions defines statusproc() with this snippit
>>> to process arguments:
>>>
>>>    while true; do
>>>      case "${1}" in
>>>
>>>          -p)
>>>              pidfile="${2}"
>>>              shift 2
>>>              ;;
>>>      esac
>>>    done
>>>
>>>
>>> Isn't this broken?

>> What's broken?  Can you give an example of how it breaks?

> I think this might carry over from the original so the problem dates 
> back to me or possibly even Nathan and Alex. I didn't look. At any rate, 
> the problem is that there is no error checking. I don't believe that 
> statusproc() is intended to check multiple processes from multiple 
> executables (multiple processes from one executable yes). For the -p 
> case, you should verify that $2 is a valid file, and that $3 is 
> executable or undefined, and add a * case, that $1 is executable and $2 
> = "-p" && shift 1;. If any of the above are false, a return  value of 2 
> should fit the LSB spec with optional error message "Error: invalid or 
> excessive argument(s)". A case could be made that $3 in the -p case or 
> $1 in the * case not being executable should return a value of 5, but 
> I'm not sure that value should apply here. I didn't look to see if the 
> executable is evaluated later in the function, but the function should 
> most definitely have argument handling for excessive arguments in the 
> while loop.
> 
> http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html

I still don't understand what is broken.  In every place statusproc is 
called, it is from the user running '/etc/init.d/service status'.  The 
maximum harm would be that the wrong thing is displayed, but only 
postfix and swat specify a -p parameter.

Until we establish what is broken, I am not in favor of making any changes.

   -- Bruce
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to