]> 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 4418f7eeb5e408640de54eb30115631d83f19c15..3441eb45923733c3987f0bc85115a64d054510b0 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 #include "portable.h"
-#include "slapi_common.h"
 #include <slap.h>
 #include <slapi.h>
 
@@ -22,6 +21,10 @@ isOkNetscapeParam( int param )
        case SLAPI_BACKEND:
        case SLAPI_CONNECTION:
        case SLAPI_OPERATION:
+       case SLAPI_OPERATION_PARAMETERS:
+       case SLAPI_OPERATION_TYPE:
+       case SLAPI_OPERATION_ID:
+       case SLAPI_OPERATION_AUTHTYPE:
        case SLAPI_REQUESTOR_ISROOT:
        case SLAPI_BE_MONITORDN:
        case SLAPI_BE_TYPE:
@@ -32,7 +35,14 @@ isOkNetscapeParam( int param )
        case SLAPI_REQUESTOR_DN:
        case SLAPI_REQUESTOR_ISUPDATEDN:
        case SLAPI_CONN_DN:
+       case SLAPI_CONN_CLIENTIP:
+       case SLAPI_CONN_SERVERIP:
        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:
@@ -185,6 +195,11 @@ isOkNetscapeParam( int param )
        case SLAPI_CHANGENUMBER:
        case SLAPI_LOG_OPERATION:
        case SLAPI_DBSIZE:
+       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;
@@ -257,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; 
        }
@@ -350,7 +365,7 @@ slapi_pblock_destroy( Slapi_PBlock* pb )
                str = NULL;
        }
 
-       get( pb, SLAPI_CONN_AUTHTYPE, (void **)&str );
+       get( pb, SLAPI_CONN_AUTHMETHOD, (void **)&str );
        if ( str != NULL ) {
                ch_free( str );
                str = NULL;
@@ -402,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 ) {