jfclere 2002/06/12 05:40:17 Modified: jk/native2/common jk_shm.c jk_workerEnv.c jk_worker_ajp13.c Log: Prevent the core when getSlot() failed. Revision Changes Path 1.27 +10 -8 jakarta-tomcat-connectors/jk/native2/common/jk_shm.c Index: jk_shm.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_shm.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- jk_shm.c 10 Jun 2002 21:55:06 -0000 1.26 +++ jk_shm.c 12 Jun 2002 12:40:17 -0000 1.27 @@ -447,16 +447,18 @@ int slotId; int i; jk_shm_slot_t *slot; - - for( i=1; i<shm->head->lastSlot; i++ ) { - slot= shm->getSlot( env, shm, i ); - if( strncmp( slot->name, name, strlen(name) ) == 0 ) { - return slot; + + if (shm->head!=NULL) { + for( i=1; i<shm->head->lastSlot; i++ ) { + slot= shm->getSlot( env, shm, i ); + if( strncmp( slot->name, name, strlen(name) ) == 0 ) { + return slot; + } } + /* New slot */ + /* XXX interprocess sync */ + slotId=shm->head->lastSlot++; } - /* New slot */ - /* XXX interprocess sync */ - slotId=shm->head->lastSlot++; slot=shm->getSlot( env, shm, slotId ); if( slot==NULL ) return NULL; 1.54 +3 -2 jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c Index: jk_workerEnv.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c,v retrieving revision 1.53 retrieving revision 1.54 diff -u -r1.53 -r1.54 --- jk_workerEnv.c 10 Jun 2002 21:55:06 -0000 1.53 +++ jk_workerEnv.c 12 Jun 2002 12:40:17 -0000 1.54 @@ -580,7 +580,8 @@ wEnv->endpointMap->add( env, wEnv->endpointMap, ep->mbean->localName, ep ); ep->mbean->id=pos; - ep->mbean->init( env, ep->mbean ); + if (ep->mbean->init( env, ep->mbean )==JK_ERR) + return JK_ERR; return JK_OK; } 1.32 +14 -5 jakarta-tomcat-connectors/jk/native2/common/jk_worker_ajp13.c Index: jk_worker_ajp13.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_worker_ajp13.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- jk_worker_ajp13.c 10 Jun 2002 21:55:06 -0000 1.31 +++ jk_worker_ajp13.c 12 Jun 2002 12:40:17 -0000 1.32 @@ -561,6 +561,7 @@ { jk_endpoint_t *e = NULL; jk_bean_t *jkb; + int ret; if( ajp13->secret ==NULL ) { } @@ -596,17 +597,23 @@ *eP = e; - ajp13->workerEnv->addEndpoint( env, ajp13->workerEnv, e ); + ret = ajp13->workerEnv->addEndpoint( env, ajp13->workerEnv, e ); } if( ajp13->cs != NULL ) ajp13->cs->unLock( env, ajp13->cs ); - if( ajp13->mbean->debug > 0 ) - env->l->jkLog(env, env->l, JK_LOG_INFO, + if( ajp13->mbean->debug > 0 ) { + if (ret==JK_OK) + env->l->jkLog(env, env->l, JK_LOG_INFO, "ajp13.getEndpoint(): Created endpoint %s %s \n", ajp13->mbean->name, jkb->name); + else + env->l->jkLog(env, env->l, JK_LOG_INFO, + "ajp13.getEndpoint(): endpoint creation %s %s failed\n", + ajp13->mbean->name, jkb->name); + } - return JK_OK; + return ret; } /* @@ -620,7 +627,9 @@ jk_endpoint_t *e; /* Get endpoint from the pool */ - jk2_worker_ajp13_getEndpoint( env, w, &e ); + err=jk2_worker_ajp13_getEndpoint( env, w, &e ); + if (err!=JK_OK) + return err; #ifdef HAS_APR if( s->uriEnv!=NULL && s->uriEnv->timing == JK_TRUE ) {
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>