>
> 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