]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-perl/modify.c
Merge remote-tracking branch 'origin/mdb.master'
[openldap] / servers / slapd / back-perl / modify.c
index 228c4196a82eeb704b137a3350b3854c0ad1e748..e8335cd01e9389447f6321ff3e1f67704ec87d13 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1999-2011 The OpenLDAP Foundation.
+ * Copyright 1999-2012 The OpenLDAP Foundation.
  * Portions Copyright 1999 John C. Quillan.
  * Portions Copyright 2002 myinternet Limited.
  * All rights reserved.
@@ -16,6 +16,7 @@
  */
 
 #include "perl_back.h"
+#include <ac/string.h>
 
 int
 perl_back_modify(
@@ -42,26 +43,27 @@ perl_back_modify(
 
                        switch ( mods->sm_op & ~LDAP_MOD_BVALUES ) {
                        case LDAP_MOD_ADD:
-                               XPUSHs(sv_2mortal(newSVpv("ADD", 0 )));
+                               XPUSHs(sv_2mortal(newSVpv("ADD", STRLENOF("ADD") )));
                                break;
                                
                        case LDAP_MOD_DELETE:
-                               XPUSHs(sv_2mortal(newSVpv("DELETE", 0 )));
+                               XPUSHs(sv_2mortal(newSVpv("DELETE", STRLENOF("DELETE") )));
                                break;
                                
                        case LDAP_MOD_REPLACE:
-                               XPUSHs(sv_2mortal(newSVpv("REPLACE", 0 )));
+                               XPUSHs(sv_2mortal(newSVpv("REPLACE", STRLENOF("REPLACE") )));
                                break;
                        }
 
                        
-                       XPUSHs(sv_2mortal(newSVpv( mods->sm_desc->ad_cname.bv_val, 0 )));
+                       XPUSHs(sv_2mortal(newSVpv( mods->sm_desc->ad_cname.bv_val,
+                               mods->sm_desc->ad_cname.bv_len )));
 
                        for ( i = 0;
                                mods->sm_values != NULL && mods->sm_values[i].bv_val != NULL;
                                i++ )
                        {
-                               XPUSHs(sv_2mortal(newSVpv( mods->sm_values[i].bv_val, 0 )));
+                               XPUSHs(sv_2mortal(newSVpv( mods->sm_values[i].bv_val, mods->sm_values[i].bv_len )));
                        }
 
                        /* Fix delete attrib without value. */