[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: Is this a bug?
Where do you tell ldap_search_s() the length of vector attrs ?
Konstantinos Agouros wrote:
>
> Hi,
>
> I tried a little c-programming and came across a segmentation fault, I don't
> understand:
> Here is the code:
> -----------------------------------------------------------
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include <lber.h>
> #include <ldap.h>
>
> void dn2xmlanrede(char *dn, char *ldaphost)
> {
> LDAP *ld;
> LDAPMessage *res;
> char *ldhost, *sn, *base;
> char *attrs[] = {"l", "streetAddress", "postalAddress", "postalCode", "sn", "givenName", "gender"};
> int gender=0, anrlen, ret;
>
> ld = ldap_open(ldaphost, 389);
> base = strdup(dn);
> ret = ldap_simple_bind_s(ld, "", "");
> if(ret < 0)
> ldap_perror(ld, "simple bind failed");
> else
> {
> ret = ldap_search_s(ld, base, 0, "objectclass=*", attrs, 0, &res);
> if(ldap_count_entries(ld, res) > 0)
> {
> LDAPMessage *entry;
> char **vals;
>
> entry = ldap_first_entry(ld, res);
> vals = ldap_get_values(ld, entry, "sn");
> sn = strdup(vals[0]);
> vals = ldap_get_values(ld, entry, "gender");
> gender = !strcmp(vals[0], "female");
> if(gender)
> printf("<ANREDE>Frau %s</ANREDE>\n", sn);
> else
> sprintf("<ANREDE>Herr %s</ANREDE>\n", sn);
> }
> else
> {
> printf("Nix gefunden\n");
> }
> }
> printf("Nix gefunden");
> }
>
> int main(int argc, char **argv)
> {
> dn2xmlanrede(argv[1], "localhost");
> }
> -----------------------------------------------------------
> This gives me a segmentation fault in ldap_searc_s. I see the ldap_open, and
> ldap_bind working, but than it fails.
> I have a similar piece of code working.
> Somebody has a idea?
>
> Konstantin
> --
> Dipl-Inf. Konstantin Agouros aka Elwood Blues. Internet: elwood@agouros.de
> Otkerstr. 28, 81547 Muenchen, Germany. Tel +49 89 69370185
> ----------------------------------------------------------------------------
> "Captain, this ship will not sustain the forming of the cosmos." B'Elana Torres
--
P.Timmons, service informatique