[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: syntax of ldap_modify_s



I've changed the code to...

	char* vals0[2];
	vals0[0] = "eric@ntu.ac.uk";
	vals0[1] = NULL;

	int rc = ldap_simple_bind_s(ld, user, pass);
	
	LDAPMod *modM;
	
	char *dn = "uflEduUniversityId=28833300,ou=People,dc=ufl,dc=edu";

	modM->mod_op = LDAP_MOD_ADD;
	modM->mod_type = "mail";
	modM->mod_values = vals0;
	
	if((ldap_modify_s(ld, dn, &modM)) != LDAP_SUCCESS)
	{
		
	// FAIL
		
	}

But still get the same error on the ldap_modify_s(ld, dn, &modM) command.

Cheers,
Ade

2009/4/27 Eli Bach <ebach2@gmail.com>:
>
> On Apr 26, 2009, at 5:31 AM, Adrian St. John-Bee wrote:
>
>> char** vals0;
>
> ...
>>
>> vals0[0] = "eric@ntu.ac.uk";
>
> It looks like these two lines are your problem.
>
> You are just defining vals0 as a pointer to a pointer, and then referencing
> it as an array of pointers.
>
> However, you don't allocate any memory to actually store any data into.
>
> If you switched you're code to something like:
>
> char* vals0[2];
> vals0[0] = "eric@ntu.ac.uk";
> vals0[1] = NULL;
>
> I have no comment on whether you are using the ldap api's correctly or not.
>
>