The nss.h header is glibc-specific, so use the existing HAVE_NSS_H define
to avoid including/using it when it is not available.
URL: http://bugs.gentoo.org/458024
Reported-by: Mark Reiche <[email protected]>
Signed-off-by: Mike Frysinger <[email protected]>
---
src/rpcbind.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/rpcbind.c b/src/rpcbind.c
index 9a0504d..83dbe93 100644
--- a/src/rpcbind.c
+++ b/src/rpcbind.c
@@ -67,7 +67,11 @@
#include <pwd.h>
#include <string.h>
#include <errno.h>
+#ifdef HAVE_NSS_H
#include <nss.h>
+#else
+static inline void __nss_configure_lookup(const char *db, const char *s) {}
+#endif
#include "rpcbind.h"
/*#define RPCBIND_DEBUG*/
--
1.8.1.2
On Tuesday 19 February 2013 13:54:19 Chuck Lever wrote:
> On Feb 19, 2013, at 1:48 PM, Mike Frysinger <[email protected]> wrote:
> > The nss.h header is glibc-specific, so use the existing HAVE_NSS_H define
> > to avoid including/using it when it is not available.
> > --- a/src/rpcbind.c
> > +++ b/src/rpcbind.c
> > @@ -67,7 +67,11 @@
> > #include <pwd.h>
> > #include <string.h>
> > #include <errno.h>
> > +#ifdef HAVE_NSS_H
> > #include <nss.h>
> > +#else
> > +static inline void __nss_configure_lookup(const char *db, const char *s)
> > {} +#endif
>
> Where is rpcbind getting the __nss_configure_lookup() function in this
> case? I don't see that the call sites are ifdef-d out if HAVE_NSS_H is
> not defined.
i'm not sure what you mean.
if nss.h exists, then HAVE_NSS_H is defined, and the nss.h header provides the
__nss_configure_lookup prototype (and presumably, the C library provides that
func).
if nss.h doesn't exist, then HAVE_NSS_H is not defined, so we have to stub out
the __nss_configure_lookup func. i could have put "#ifdef HAVE_NSS_H" around
all the call sites, but i think this version is cleaner and less error prone.
also, i typoed the subject name ("one" vs "on").
-mike
On 19/02/13 13:48, Mike Frysinger wrote:
> The nss.h header is glibc-specific, so use the existing HAVE_NSS_H define
> to avoid including/using it when it is not available.
>
> URL: http://bugs.gentoo.org/458024
> Reported-by: Mark Reiche <[email protected]>
> Signed-off-by: Mike Frysinger <[email protected]>
Committed...
steved.
> ---
> src/rpcbind.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/src/rpcbind.c b/src/rpcbind.c
> index 9a0504d..83dbe93 100644
> --- a/src/rpcbind.c
> +++ b/src/rpcbind.c
> @@ -67,7 +67,11 @@
> #include <pwd.h>
> #include <string.h>
> #include <errno.h>
> +#ifdef HAVE_NSS_H
> #include <nss.h>
> +#else
> +static inline void __nss_configure_lookup(const char *db, const char *s) {}
> +#endif
> #include "rpcbind.h"
>
> /*#define RPCBIND_DEBUG*/
> -- 1.8.1.2 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
>
Hi-
On Feb 19, 2013, at 1:48 PM, Mike Frysinger <[email protected]> wrote:
> The nss.h header is glibc-specific, so use the existing HAVE_NSS_H define
> to avoid including/using it when it is not available.
>
> URL: http://bugs.gentoo.org/458024
> Reported-by: Mark Reiche <[email protected]>
> Signed-off-by: Mike Frysinger <[email protected]>
> ---
> src/rpcbind.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/src/rpcbind.c b/src/rpcbind.c
> index 9a0504d..83dbe93 100644
> --- a/src/rpcbind.c
> +++ b/src/rpcbind.c
> @@ -67,7 +67,11 @@
> #include <pwd.h>
> #include <string.h>
> #include <errno.h>
> +#ifdef HAVE_NSS_H
> #include <nss.h>
> +#else
> +static inline void __nss_configure_lookup(const char *db, const char *s) {}
> +#endif
Where is rpcbind getting the __nss_configure_lookup() function in this case? I don't see that the call sites are ifdef-d out if HAVE_NSS_H is not defined.
> #include "rpcbind.h"
>
> /*#define RPCBIND_DEBUG*/
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
On Feb 19, 2013, at 2:14 PM, Mike Frysinger <[email protected]> wrote:
> On Tuesday 19 February 2013 13:54:19 Chuck Lever wrote:
>> On Feb 19, 2013, at 1:48 PM, Mike Frysinger <[email protected]> wrote:
>>> The nss.h header is glibc-specific, so use the existing HAVE_NSS_H define
>>> to avoid including/using it when it is not available.
>>> --- a/src/rpcbind.c
>>> +++ b/src/rpcbind.c
>>> @@ -67,7 +67,11 @@
>>> #include <pwd.h>
>>> #include <string.h>
>>> #include <errno.h>
>>> +#ifdef HAVE_NSS_H
>>> #include <nss.h>
>>> +#else
>>> +static inline void __nss_configure_lookup(const char *db, const char *s)
>>> {} +#endif
>>
>> Where is rpcbind getting the __nss_configure_lookup() function in this
>> case? I don't see that the call sites are ifdef-d out if HAVE_NSS_H is
>> not defined.
>
> i'm not sure what you mean.
>
> if nss.h exists, then HAVE_NSS_H is defined, and the nss.h header provides the
> __nss_configure_lookup prototype (and presumably, the C library provides that
> func).
>
> if nss.h doesn't exist, then HAVE_NSS_H is not defined, so we have to stub out
> the __nss_configure_lookup func. i could have put "#ifdef HAVE_NSS_H" around
> all the call sites, but i think this version is cleaner and less error prone.
OK, clear. Sorry to be dense.
>
> also, i typoed the subject name ("one" vs "on").
> -mike
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com