On Mon, Jan 3, 2011 at 4:25 AM, Willy Tarreau <[email protected]> wrote:
> Hi David,
>
> On Tue, Dec 28, 2010 at 11:27:02AM +0900, David Cournapeau wrote:
>> On Mon, Dec 27, 2010 at 2:59 PM, Willy Tarreau <[email protected]> wrote:
>> > Hi David,
>> >
>> > On Thu, Dec 23, 2010 at 08:55:41PM +0900, David Cournapeau wrote:
>> >> The patch does work because I set data->str.len to url_param_value_l +
>> >> 1, but I don't understand why this works. I have checked that
>> >> url_param_value_l does correspond to the actual string length,
>> >
>> > It is possible that you uncovered a bug, I'll check that tomorrow.
>>
>> Ok. Let me know if you need more information or different test to
>> uncover the potential bug (I have a simple setup with dummy python
>> servers to track sessions easily).
>
> OK I found the bug. The string keys were not always zero-terminated
> during lookups, but the zero was checked after the lookup, so once
> you entered a key that had another one as a prefix, it would make
> it unreachable.
>
> It's fixed in this commit :
>
>   http://git.1wt.eu/web?p=haproxy.git;a=commitdiff;h=035da6
>
> I've checked your patch (without the +1) and overall it seems to work
> as expected. However I've found a minor issue which once fixed will
> result in simpler and faster code. Function find_query_string_pos()
> searches for the last slash then the first question mark. This prevents
> query strings containing slashes from being correctly parsed.
>
> The fix is easy and will make the code look better (so you'll be able
> to get rid of your comment about the ugliness). We'll just use a
> memchr(path, '/', path_l) just as we do in backend.c:get_server_ph().
>
> I can perform the change myself if you want, then commit the patch.
> Please just tell me if you're OK with that.

Thanks for looking into this. I won't have time to fix this before 2
days, so if you don't mind changing the code, that's fine by me. I
understand it is a small feature, but as I have worked on that patch
during my work time, it would be helpful if the feature could be
mentioned somewhere in haproxy webpage.

regards,

David

Reply via email to