Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > 9486143717ff79cfb9a91e2b2023c4a0 > files > 2

openldap-smbk5pwd-2.4.13-2mdv2009.0.src.rpm

--- smbk5pwd.c~	2008-05-28 18:11:05.000000000 +0200
+++ smbk5pwd.c	2008-05-28 18:10:46.000000000 +0200
@@ -368,6 +368,8 @@
 		struct berval *keys;
 		int kvno, i;
 		Attribute *a;
+		Key *local_keys;
+		size_t local_num_keys;
 
 		if ( !SMBK5PWD_DO_KRB5( pi ) ) break;
 
@@ -396,7 +398,16 @@
 				op->o_log_prefix, e->e_name.bv_val, 0 );
 		}
 
-		ret = _kadm5_set_keys(kadm_context, &ent, qpw->rs_new.bv_val);
+		/* _kadm5_set_keys is a private function, inline its code here */
+		ret = hdb_generate_key_set_password(context, ent.principal,
+                qpw->rs_new.bv_val, &local_keys, &local_num_keys);
+		if (ret != 0)
+			break;
+
+		hdb_free_keys(context, ent.keys.len, ent.keys.val);
+		ent.keys.val = local_keys;
+		ent.keys.len = local_num_keys;
+
 		hdb_seal_keys(context, db, &ent);
 		krb5_free_principal( context, ent.principal );
 
@@ -415,7 +426,7 @@
 		}
 		BER_BVZERO( &keys[i] );
 
-		_kadm5_free_keys(kadm_context, ent.keys.len, ent.keys.val);
+		hdb_free_keys(context, ent.keys.len, ent.keys.val);
 
 		if ( i != ent.keys.len ) {
 			ber_bvarray_free( keys );