Monday, August 29, 2016

[389-devel] Re: Sign compare checking

> >
> > int ber_printf(BerElement *ber, const char *fmt, ...);
> >
> > lber.h:79:#define LBER_ERROR ((ber_tag_t) -1)
> >
> > We check if (ber_printf(...) != LBER_ERROR)
> >
> > Of course, we can't satisfy either. We can't cast the LBER_ERROR from
> > uint -> int without changing the value of it, and we can't cast the
> > output of ber_printf from int -> uint, again, without potentially
> > changing the value of it. So it seems that the openldap library may be
> > impossible to satisfy the gcc type checking with -Wsign-compare.
> >
> > For now, I may just avoid these in my fixes, as it seems like a whole
> > set of landmines I want to avoid ...
>

>
> (as for why we still support mozldap - we still need an ldap c sdk that
> supports NSS for crypto until we can fix that in the server. Once we
> change 389 so that it can use openldap with openssl/gnutls for crypto,
> we should consider deprecating support for mozldap.)

Actually, all of this is specific to openldap only. Nothing about
mozldap at all.

So I think I'll just have to ignore the GCC warnings about this when
it's related to openldap ber library.

--
Sincerely,

William Brown
Software Engineer
Red Hat, Brisbane

No comments:

Post a Comment