Author: rjung
Date: Fri Mar 13 11:44:35 2009
New Revision: 753212

URL: http://svn.apache.org/viewvc?rev=753212&view=rev
Log:
Addition to r753147:

Use strlen to compare for identity without patching
the string to make it zero-terminated.

This avoids having a side effect on the argument.
For instance we call find_bysession_route() with
the configured redirect route, which might not be safe.

This change allows us to switch back the arguments
to const char*.

Modified:
    tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c

Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c?rev=753212&r1=753211&r2=753212&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Fri Mar 13 11:44:35 
2009
@@ -718,17 +718,21 @@
     int activation;
     lb_sub_worker_t wr;
     char *idpart = strchr(sessionid, '.');
-    char *domain = sessionid;
+    size_t domain_len = 0;
 
     if (idpart) {
-        *idpart = '\0';
+        domain_len = idpart - sessionid;
+    }
+    else {
+        domain_len = strlen(sessionid);
     }
     /* First try to see if we have available candidate */
     for (i = 0; i < p->num_of_workers; i++) {
         /* Skip all workers that are not member of domain */
         wr = p->lb_workers[i];
         if (strlen(wr.domain) == 0 ||
-            strcmp(wr.domain, domain))
+            strlen(wr.domain) != domain_len ||
+            strncmp(wr.domain, sessionid, domain_len))
             continue;
         /* Take into calculation only the workers that are
          * not in error state, stopped, disabled or busy.
@@ -748,10 +752,6 @@
             }
         }
     }
-    if (idpart) {
-        /* Restore original char */
-        *idpart = '.';
-    }
     return candidate;
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to