]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slapi/slapi_pblock.c
Do not return pointers into BerElement we do not own
[openldap] / servers / slapd / slapi / slapi_pblock.c
index 4eaa4b5bcd0b3455b3cedcf42a3d91ab213d2187..3441eb45923733c3987f0bc85115a64d054510b0 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 #include "portable.h"
-#include "slapi_common.h"
 #include <slap.h>
 #include <slapi.h>
 
@@ -41,6 +40,9 @@ isOkNetscapeParam( int param )
        case SLAPI_CONN_AUTHTYPE:
        case SLAPI_CONN_AUTHMETHOD:
        case SLAPI_CONN_CERT:
+       case SLAPI_X_CONN_IS_UDP:
+       case SLAPI_X_CONN_CLIENTPATH:
+       case SLAPI_X_CONN_SERVERPATH:
        case SLAPI_IBM_CONN_DN_ALT:
        case SLAPI_IBM_CONN_DN_ORIG:
        case SLAPI_IBM_GSSAPI_CONTEXT:
@@ -196,6 +198,8 @@ isOkNetscapeParam( int param )
        case SLAPI_RESULT_CODE:
        case SLAPI_RESULT_TEXT:
        case SLAPI_RESULT_MATCHED:
+       case SLAPI_PLUGIN_COMPUTE_EVALUATOR_FN:
+       case SLAPI_PLUGIN_COMPUTE_SEARCH_REWRITER_FN:
                return LDAP_SUCCESS;
        default:
                return INVALID_PARAM;
@@ -268,7 +272,7 @@ set( Slapi_PBlock *pb, int param, void *val )
 
        Lock( pb );     
 
-       if ( pb->numParams == MAX_PARAMS ) {
+       if ( pb->numParams == PBLOCK_MAX_PARAMS ) {
                unLock( pb );
                return PBLOCK_ERROR; 
        }
@@ -361,12 +365,6 @@ slapi_pblock_destroy( Slapi_PBlock* pb )
                str = NULL;
        }
 
-       get( pb, SLAPI_OPERATION_AUTHTYPE, (void **)&str );
-       if ( str != NULL ) {
-               ch_free( str );
-               str = NULL;
-       }
-
        get( pb, SLAPI_CONN_AUTHMETHOD, (void **)&str );
        if ( str != NULL ) {
                ch_free( str );
@@ -419,9 +417,11 @@ slapi_pblock_set( Slapi_PBlock *pb, int arg, void *value )
 
        switch ( arg ) {
         case SLAPI_CONN_DN:
-        case SLAPI_CONN_AUTHTYPE:
+        case SLAPI_CONN_AUTHMETHOD:
         case SLAPI_IBM_CONN_DN_ALT:
         case SLAPI_IBM_CONN_DN_ORIG:
+        case SLAPI_RESULT_TEXT:
+        case SLAPI_RESULT_MATCHED:
                if ( value != NULL ) {
                        pTmp = (void *)slapi_ch_strdup((char *)value);
                        if ( pTmp == NULL ) {