costin      02/05/29 16:18:59

  Modified:    jk/native2/common jk_worker_status.c
  Log:
  Added checks for NULL, printf() doesn't like null params.
  
  I love Java :-)
  
  Revision  Changes    Path
  1.26      +20 -16    jakarta-tomcat-connectors/jk/native2/common/jk_worker_status.c
  
  Index: jk_worker_status.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_worker_status.c,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- jk_worker_status.c        29 May 2002 17:51:23 -0000      1.25
  +++ jk_worker_status.c        29 May 2002 23:18:59 -0000      1.26
  @@ -75,6 +75,8 @@
   #include "jk_registry.h"
   #include "jk_endpoint.h"
   
  +#define JK_CHECK_NULL( str ) ( ((str)==NULL) ? "null" : (str) )
  +
   static void jk2_worker_status_displayStat(jk_env_t *env, jk_ws_service_t *s,
                                             jk_stat_t *stat,
                                             int *totalReqP, int *totalErrP,
  @@ -87,7 +89,7 @@
       
       s->jkprintf(env, s, "<tr><td>%d</td><td>%d</td><td>%d</td>\n",
                   stat->workerId, stat->reqCnt, stat->errCnt );
  -    s->jkprintf(env, s, "<td>%s</td>\n",  stat->active );
  +    s->jkprintf(env, s, "<td>%s</td>\n",  JK_CHECK_NULL(stat->active) );
   
       totalReq+=stat->reqCnt;
       totalErr+=stat->errCnt;
  @@ -223,7 +225,7 @@
               /* This is an endpoint slot */
               void *data=slot->data;
   
  -            s->jkprintf(env, s, "<tr><th colspan='4'>%s</th>\n", slot->name );
  +            s->jkprintf(env, s, "<tr><th colspan='4'>%s</th>\n", 
JK_CHECK_NULL(slot->name) );
               s->jkprintf(env, s, "<th>Cnt=%d</th><th>size=%d</th>\n",
                           slot->structCnt, slot->structSize );
               
  @@ -281,8 +283,8 @@
               continue;
   
           if( needHeader ) {
  -            s->jkprintf(env, s, "<H3>%s runtime info</H3>\n", type);
  -            s->jkprintf(env, s, "<p>%s information, using getAttribute() </p>\n", 
type);
  +            s->jkprintf(env, s, "<H3>%s runtime info</H3>\n", JK_CHECK_NULL(type) );
  +            s->jkprintf(env, s, "<p>%s information, using getAttribute() </p>\n", 
JK_CHECK_NULL(type) );
               
               s->jkprintf(env, s, "<table border>\n");
               s->jkprintf(env, s, "<tr><th>id</th>\n");
  @@ -290,17 +292,18 @@
               for( j=0; mbean->getAttributeInfo[j] != NULL; j++ ) {
                   char *pname=mbean->getAttributeInfo[j];
                   
  -                s->jkprintf(env, s, "<th>%s</th>", pname );
  +                s->jkprintf(env, s, "<th>%s</th>", JK_CHECK_NULL(pname) );
               }
               needHeader = JK_FALSE;
           } 
           
  -        s->jkprintf(env, s, "</tr><tr><td>%d</td><td>%s</td>\n", mbean->id, 
mbean->localName);
  +        s->jkprintf(env, s, "</tr><tr><td>%d</td><td>%s</td>\n", mbean->id,
  +                    JK_CHECK_NULL(mbean->localName));
           for( j=0; mbean->getAttributeInfo[j] != NULL; j++ ) {
               char *pname=mbean->getAttributeInfo[j];
   
               s->jkprintf(env, s, "<td>%s</td>",
  -                        mbean->getAttribute( env, mbean, pname));
  +                        JK_CHECK_NULL(mbean->getAttribute( env, mbean, pname)));
           }
       }
       if( ! needHeader ) {
  @@ -337,7 +340,7 @@
                   stat->maxTime=0;
   #endif
                   env->l->jkLog(env, env->l, JK_LOG_INFO, "reset() %s %p %p %p %d %d 
%d %d\n",
  -                              slot->name, data, statArray, stat, i, j, 
stat->reqCnt, stat->errCnt );
  +                              JK_CHECK_NULL(slot->name), data, statArray, stat, i, 
j, stat->reqCnt, stat->errCnt );
               }
           }
       }
  @@ -360,8 +363,8 @@
       for( i=0; i< map->size( env, map ) ; i++ ) {
           char *name=map->nameAt( env, map, i );
           char *value=(char *)map->valueAt( env, map,i );
  -        s->jkprintf(env, s, "<tr><td>%s</td><td>%s</td></tr>", name,
  -                    value);
  +        s->jkprintf(env, s, "<tr><td>%s</td><td>%s</td></tr>", JK_CHECK_NULL(name),
  +                    JK_CHECK_NULL(value));
       }
       s->jkprintf(env, s, "</table>\n");
   }
  @@ -394,18 +397,19 @@
           propCount=mbean->settings->size( env, mbean->settings );
   
           if( propCount==0 ) {
  -            s->jkprintf(env, s, "<tr><th>%s</th><td></td></tr>", mbean->name );
  +            s->jkprintf(env, s, "<tr><th>%s</th><td></td></tr>", 
JK_CHECK_NULL(mbean->name) );
           } else {
               s->jkprintf(env, s, "<tr><th 
rowspan='%d'>%s</th><td>%s</td><td>%s</td></tr>",
  -                        propCount, mbean->name,
  -                        mbean->settings->nameAt( env, mbean->settings, 0),
  -                        mbean->settings->valueAt( env, mbean->settings, 0));
  +                        propCount, JK_CHECK_NULL(mbean->name),
  +                        JK_CHECK_NULL(mbean->settings->nameAt( env, 
mbean->settings, 0)),
  +                        JK_CHECK_NULL(mbean->settings->valueAt( env, 
mbean->settings, 0)));
               for( j=1; j < propCount ; j++ ) {
                   char *pname=mbean->settings->nameAt( env, mbean->settings, j);
                   /* Don't save redundant information */
                   if( strcmp( pname, "name" ) != 0 ) {
                       s->jkprintf(env, s, "<tr><td>%s</td><td>%s</td></tr>",
  -                                pname, mbean->settings->valueAt( env, 
mbean->settings, j));
  +                                JK_CHECK_NULL(pname),
  +                                JK_CHECK_NULL(mbean->settings->valueAt( env, 
mbean->settings, j)));
                   }
               }
           }
  @@ -422,7 +426,7 @@
   
       if( w->mbean->debug > 0 ) 
           env->l->jkLog(env, env->l, JK_LOG_INFO, "status.service() %s %s\n",
  -                      uri, s->query_string);
  +                      JK_CHECK_NULL(uri), JK_CHECK_NULL(s->query_string));
   
       /* Generate the header */
       s->status=200;
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to