URL-Parsing: fix off by one when checking the length of URL params
[citadel.git] / webcit / paramhandling.c
index 3507a9a76bc57525c0ac2942f018894d7d609414..9db69f7e78791ab4b7072958b0fa1d696c2626fb 100644 (file)
@@ -50,7 +50,7 @@ void ParseURLParams(StrBuf *url)
                        bptr++;
                }
                keylen = aptr - up - 1; /* -1 -> '=' */
-               if(keylen > sizeof(u->url_key)) {
+               if(keylen >= sizeof(u->url_key)) {
                        syslog(1, "invalid url_key from %s", ChrPtr(WCC->Hdr->HR.browser_host));
                        return;
                }
@@ -371,7 +371,7 @@ void PutBstr(const char *key, long keylen, StrBuf *Value)
        urlcontent *u;
        wcsession *WCC = WC;
 
-       if(keylen > sizeof(u->url_key)) {
+       if(keylen >= sizeof(u->url_key)) {
                syslog(1, "invalid url_key from %s", ChrPtr(WCC->Hdr->HR.browser_host));
                FreeStrBuf(&Value);
                return;
@@ -558,7 +558,7 @@ InitModule_PARAMHANDLING
        RegisterNamespace("BSTR:PAIR:X", 1, 2, tmplput_bstr_pair_x, NULL, CTX_BSTRPAIRS);
        RegisterNamespace("BSTR:PAIR:Y", 1, 2, tmplput_bstr_pair_y, NULL, CTX_BSTRPAIRS);
 
-       RegisterConditional(HKEY("COND:BSTR"), 1, ConditionalBstr, CTX_NONE);
+       RegisterConditional("COND:BSTR", 1, ConditionalBstr, CTX_NONE);
        RegisterNamespace("BSTR", 1, 2, tmplput_bstr, NULL, CTX_NONE);
        RegisterNamespace("BSTR:FORWARD", 1, 2, tmplput_bstrforward, NULL, CTX_NONE);
        RegisterNamespace("URLPART", 1, 2, tmplput_url_part, NULL, CTX_NONE);