Author: rjung Date: Mon Dec 21 23:33:10 2009 New Revision: 893032 URL: http://svn.apache.org/viewvc?rev=893032&view=rev Log: BZ45610: Don't accept status worker requests with empty value for sub worker parameter.
Modified: tomcat/jk/trunk/native/common/jk_status.c tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml Modified: tomcat/jk/trunk/native/common/jk_status.c URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_status.c?rev=893032&r1=893031&r2=893032&view=diff ============================================================================== --- tomcat/jk/trunk/native/common/jk_status.c (original) +++ tomcat/jk/trunk/native/common/jk_status.c Mon Dec 21 23:33:10 2009 @@ -1266,7 +1266,7 @@ if (value) { *value = '\0'; value++; - /* XXX Depending on the params values, we might need to trim and decode */ + /* XXX Depending on the params values, we might need to trim and decode */ if (strlen(key)) { if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, @@ -1313,6 +1313,22 @@ "Status worker '%s' %s worker '%s' sub worker '%s'", w->name, operation, *worker ? *worker : "(null)", *sub_worker ? *sub_worker : "(null)"); + if (!*worker || !(*worker)[0]) { + jk_log(l, JK_LOG_WARNING, + "Status worker '%s' NULL or EMPTY worker param", + w->name); + p->msg = "NULL or EMPTY worker param"; + JK_TRACE_EXIT(l); + return JK_FALSE; + } + if (*sub_worker && !(*sub_worker)[0]) { + jk_log(l, JK_LOG_WARNING, + "Status worker '%s' EMPTY sub worker param", + w->name); + p->msg = "EMPTY sub worker param"; + JK_TRACE_EXIT(l); + return JK_FALSE; + } JK_TRACE_EXIT(l); return JK_TRUE; } @@ -3696,8 +3712,8 @@ lb_sub_worker_t *wr = NULL; JK_TRACE_ENTER(l); - fetch_worker_and_sub_worker(p, "checking", &worker, &sub_worker, l); - if (search_worker(s, p, &jw, worker, l) == JK_FALSE) { + if (fetch_worker_and_sub_worker(p, "checking", &worker, &sub_worker, l) == JK_FALSE || + search_worker(s, p, &jw, worker, l) == JK_FALSE) { JK_TRACE_EXIT(l); return JK_FALSE; } @@ -3920,8 +3936,8 @@ lb_sub_worker_t *wr = NULL; JK_TRACE_ENTER(l); - fetch_worker_and_sub_worker(p, "showing", &worker, &sub_worker, l); - if (search_worker(s, p, &jw, worker, l) == JK_FALSE) { + if (fetch_worker_and_sub_worker(p, "showing", &worker, &sub_worker, l) == JK_FALSE || + search_worker(s, p, &jw, worker, l) == JK_FALSE) { JK_TRACE_EXIT(l); return JK_FALSE; } @@ -3951,8 +3967,8 @@ ajp_worker_t *aw = NULL; JK_TRACE_ENTER(l); - fetch_worker_and_sub_worker(p, "editing", &worker, &sub_worker, l); - if (search_worker(s, p, &jw, worker, l) == JK_FALSE) { + if (fetch_worker_and_sub_worker(p, "editing", &worker, &sub_worker, l) == JK_FALSE || + search_worker(s, p, &jw, worker, l) == JK_FALSE) { JK_TRACE_EXIT(l); return JK_FALSE; } @@ -4046,8 +4062,8 @@ int rv; JK_TRACE_ENTER(l); - fetch_worker_and_sub_worker(p, "updating", &worker, &sub_worker, l); - if (search_worker(s, p, &jw, worker, l) == JK_FALSE) { + if (fetch_worker_and_sub_worker(p, "updating", &worker, &sub_worker, l) == JK_FALSE || + search_worker(s, p, &jw, worker, l) == JK_FALSE) { JK_TRACE_EXIT(l); return JK_FALSE; } @@ -4212,8 +4228,8 @@ time_t now = 0; JK_TRACE_ENTER(l); - fetch_worker_and_sub_worker(p, "resetting", &worker, &sub_worker, l); - if (search_worker(s, p, &jw, worker, l) == JK_FALSE) { + if (fetch_worker_and_sub_worker(p, "resetting", &worker, &sub_worker, l) == JK_FALSE || + search_worker(s, p, &jw, worker, l) == JK_FALSE) { JK_TRACE_EXIT(l); return JK_FALSE; } @@ -4325,8 +4341,8 @@ status_worker_t *w = p->worker; JK_TRACE_ENTER(l); - fetch_worker_and_sub_worker(p, "recovering", &worker, &sub_worker, l); - if (search_worker(s, p, &jw, worker, l) == JK_FALSE) { + if (fetch_worker_and_sub_worker(p, "recovering", &worker, &sub_worker, l) == JK_FALSE || + search_worker(s, p, &jw, worker, l) == JK_FALSE) { JK_TRACE_EXIT(l); return JK_FALSE; } Modified: tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml?rev=893032&r1=893031&r2=893032&view=diff ============================================================================== --- tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml (original) +++ tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml Mon Dec 21 23:33:10 2009 @@ -44,6 +44,10 @@ <subsection name="Native"> <changelog> <fix> + <bug>45610</bug>: Status: Don't accept requests with + empty value for sub worker parameter. (rjung) + </fix> + <fix> <bug>45610</bug>: Status: Fix erroneous unsetting of sticky_session and sticky_session_force when updating other load balancer attributes via the status worker. (rjung) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org