| From 1c0b0b70a276280f431d72319109a0bbc0267970 Mon Sep 17 00:00:00 2001 |
| From: Fabian Groffen <grobian@gentoo.org> |
| Date: Wed, 2 Feb 2022 10:15:22 +0800 |
| Subject: [PATCH 2/2] autofs-5.1.8 - handle innetgr() not present in musl |
| |
| The function innetgr(3) may not be present in musl libc, add a check |
| for this. |
| |
| Originally contributed by Fabian, modified by me. |
| |
| Upstream-Status: Backport [https://git.kernel.org/pub/scm/linux/storage/autofs/autofs.git/commit/?id=f60e40af3c038b8955325a11b7294ad38c15c9e8] |
| Signed-off-by: Fabian Groffen <grobian@gentoo.org> |
| Signed-off-by: Ian Kent <raven@themaw.net> |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| --- |
| configure | 6 ++++++ |
| configure.in | 2 +- |
| include/config.h.in | 3 +++ |
| modules/parse_amd.c | 7 +++++++ |
| 4 files changed, 17 insertions(+), 1 deletion(-) |
| |
| --- a/configure.in |
| +++ b/configure.in |
| @@ -169,7 +169,7 @@ AF_CHECK_SSS_LIB(SSS_AUTOFS, libsss_auto |
| AC_SUBST(HAVE_SSS_AUTOFS) |
| AC_SUBST(sssldir) |
| |
| -AC_CHECK_FUNCS(pipe2) |
| +AC_CHECK_FUNCS(pipe2 innetgr) |
| |
| # |
| # Newer mounts have the -s (sloppy) option to ignore unknown options, |
| --- a/include/config.h.in |
| +++ b/include/config.h.in |
| @@ -30,6 +30,9 @@ |
| /* Define to 1 if you have the `getservbyname' function. */ |
| #undef HAVE_GETSERVBYNAME |
| |
| +/* Define to 1 if you have the `innetgr' function. */ |
| +#undef HAVE_INNETGR |
| + |
| /* Define to 1 if you have the <inttypes.h> header file. */ |
| #undef HAVE_INTTYPES_H |
| |
| @@ -45,9 +48,6 @@ |
| /* Define if you have the Linux /proc filesystem. */ |
| #undef HAVE_LINUX_PROCFS |
| |
| -/* Define to 1 if you have the <memory.h> header file. */ |
| -#undef HAVE_MEMORY_H |
| - |
| /* define if you have MOUNT */ |
| #undef HAVE_MOUNT |
| |
| @@ -69,6 +69,9 @@ |
| /* Define to 1 if you have the <stdint.h> header file. */ |
| #undef HAVE_STDINT_H |
| |
| +/* Define to 1 if you have the <stdio.h> header file. */ |
| +#undef HAVE_STDIO_H |
| + |
| /* Define to 1 if you have the <stdlib.h> header file. */ |
| #undef HAVE_STDLIB_H |
| |
| @@ -141,7 +144,9 @@ |
| /* define if you have YACC */ |
| #undef PATH_YACC |
| |
| -/* Define to 1 if you have the ANSI C header files. */ |
| +/* Define to 1 if all of the C90 standard headers exist (not just the ones |
| + required in a freestanding environment). This macro is provided for |
| + backward compatibility; new code need not use it. */ |
| #undef STDC_HEADERS |
| |
| /* Define to 1 to use the libtirpc tsd usage workaround */ |
| --- a/modules/parse_amd.c |
| +++ b/modules/parse_amd.c |
| @@ -424,6 +424,7 @@ static int sel_in_network(struct autofs_ |
| return ret; |
| } |
| |
| +#ifdef HAVE_INNETGR |
| static int sel_netgrp(struct autofs_point *ap, |
| struct selector *s, struct substvar *sv) |
| { |
| @@ -488,6 +489,7 @@ out: |
| |
| return ret; |
| } |
| +#endif |
| |
| static int eval_selector(struct autofs_point *ap, |
| struct amd_entry *this, struct substvar *sv) |
| @@ -627,7 +629,12 @@ static int eval_selector(struct autofs_p |
| switch (s->sel->selector) { |
| case SEL_NETGRP: |
| case SEL_NETGRPD: |
| +#ifndef HAVE_INNETGR |
| + error(logopt, MODPREFIX |
| + "netgroups not available, function innetgr(3) not available"); |
| +#else |
| ret = sel_netgrp(ap, s, sv); |
| +#endif |
| break; |
| |
| default: |