On 5/25/2011 5:41 AM, Mladen Turk wrote:
On 05/25/2011 02:27 AM, Daniel Ruggeri wrote:
I attached the patch to a bug opened by Cameron Stokes
https://issues.apache.org/bugzilla/show_bug.cgi?id=48841


Just a quick note on the first thing I saw:

+ //worker->lbfactor = atoi(val);
+ worker->lbfactor = strtol(val, NULL, 10);
+ if (errno == EINVAL || worker->lbfactor < 0 || worker->lbfactor > 100)

You should add
errno = 0;
before strtol call if you inspect the errno afterwards.
BTW, what's wrong with the atoi call? We ain't gonna have 64-bit lbfactors,
and the acceptable range is 0 ... 100
Also, don't use C++ comments.


Regards

Sorry about the comment, that was supposed to be removed.

I mentioned the following in the notes when I brought up the topic of the patch on the list some months back. I believe my intent was to allow setting lbfactor to zero at start time if desired and to prevent a 'parse error' from causing an invalid value to be treated as zero instead.

Patch notes from Oct on list (sorry this never made it into the bug report - can add if desired): I used a constant called PROXY_WORKER_NOLBFACTOR in mod_proxy.h and changed the atoi call during configuration to strtol since the atoi call returns 0 both during error situations and when the proper value to return is 0. Also, the existing checks had to be refactored a little since (at least on the SUN c compiler) an uninitialized integer is the same as `0'. Aside from that, only the bybusiness algorithm had to be modified to avoid a divide by zero error.

--
--
Daniel Ruggeri

Reply via email to