Re: incompatible integer to pointer conversion

From: Cy Schubert <Cy.Schubert_at_cschubert.com>
Date: Thu, 23 May 2024 22:09:38 UTC
In message <Zk-6Lo5_G6oz04QF@spindle.one-eyed-alien.net>, Brooks Davis 
writes:
> On Thu, May 23, 2024 at 02:40:59PM -0700, Chris wrote:
> > Sorry, this is really a basic "programming in C 101" question.
> > But for the life of me, I'm not getting it. The source in
> > question:
> > 
> > LDAP *setup_ldap()
> > {
> > 	LDAP *ret;
> > 	int n;
> > 
> > 	if (debug) fprintf(stderr, "radldap: Setting up LDAP for %s, port %d\n"
> ,
> > 			   host, port);
> > 	if (!(ret = ldap_init(host, port))) {
> > 		fprintf(stderr, "radldap: Could not initialize LDAP!\n");
> > 		_exit(2);
> > 	}
> > 
> > Now *you* can probably already see the problem. But this is what's returned
> :
> > 
> > radldap.c:302:12: error: incompatible integer to pointer conversion assigni
> ng
> > to 'LDAP *' (aka 'struct ldap *') from 'int' [-Wint-conversion]
> >   302 |         if (!(ret = ldap_init(host, port))) {
> >       |                   ^ ~~~~~~~~~~~~~~~~~~~~~
> > 
> > Thanks in advance for any hints, or pointers.
> > 
>
> Have you included ldap.h?  Are there any warnings about implicit
> declarations?

ldap.h includes this as well:

#if LDAP_DEPRECATED
LDAP_F( LDAP * )
ldap_init LDAP_P(( /* deprecated, use ldap_create or ldap_initialize */
        LDAP_CONST char *host,
        int port ));

LDAP_F( LDAP * )
ldap_open LDAP_P((      /* deprecated, use ldap_create or ldap_initialize */
        LDAP_CONST char *host,
        int port ));
#endif

Apps such as dovecot and apr-1 have,

	#define LDAP_DEPRECATED 1

>
> -- Brooks
>


-- 
Cheers,
Cy Schubert <Cy.Schubert@cschubert.com>
FreeBSD UNIX:  <cy@FreeBSD.org>   Web:  https://FreeBSD.org
NTP:           <cy@nwtime.org>    Web:  https://nwtime.org

			e^(i*pi)+1=0