]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldbm/extended.c
Do not return pointers into BerElement we do not own
[openldap] / servers / slapd / back-ldbm / extended.c
index c6e092aaa706bb5d862c3f20ade5109ee84dfd7a..b2cdb9e53542dc74b4d40a1907f7aec0e81303d1 100644 (file)
@@ -27,31 +27,18 @@ struct exop {
 
 int
 ldbm_back_extended(
-    Backend            *be,
-    Connection         *conn,
-    Operation          *op,
-       struct berval   *reqoid,
-    struct berval      *reqdata,
-       char            **rspoid,
-    struct berval      **rspdata,
-       LDAPControl *** rspctrls,
-       const char**    text,
-    BerVarray *refs 
-)
+       Operation       *op,
+       SlapReply       *rs )
 {
        int i;
 
        for( i=0; exop_table[i].extended != NULL; i++ ) {
-               if( ber_bvcmp( exop_table[i].oid, reqoid ) == 0 ) {
-                       return (exop_table[i].extended)(
-                               be, conn, op,
-                               reqoid, reqdata,
-                               rspoid, rspdata, rspctrls,
-                               text, refs );
+               if( ber_bvcmp( exop_table[i].oid, &op->oq_extended.rs_reqoid ) == 0 ) {
+                       return exop_table[i].extended( op, rs );
                }
        }
 
-       *text = "not supported within naming context";
+       rs->sr_text = "not supported within naming context";
        return LDAP_UNWILLING_TO_PERFORM;
 }