diff options
Diffstat (limited to 'sys-auth/libnss-nis/files/map_v4v6_address.patch')
-rw-r--r-- | sys-auth/libnss-nis/files/map_v4v6_address.patch | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/sys-auth/libnss-nis/files/map_v4v6_address.patch b/sys-auth/libnss-nis/files/map_v4v6_address.patch new file mode 100644 index 000000000000..85a69d71c5bc --- /dev/null +++ b/sys-auth/libnss-nis/files/map_v4v6_address.patch @@ -0,0 +1,112 @@ +From df903b621d4010c94129455a3f8d91d66f0fcd1f Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Fri, 17 Nov 2017 13:44:10 -0500 +Subject: [PATCH] Copy the map_v4v6_address function from glibc + +Fixes: https://github.com/thkukuk/libnss_nis/issues/1 +--- + src/Makefile.am | 3 ++- + src/map_v4v6_address.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/nis-hosts.c | 3 +-- + 3 files changed, 71 insertions(+), 3 deletions(-) + create mode 100644 src/map_v4v6_address.h + +diff --git a/src/Makefile.am b/src/Makefile.am +index 9eb3d35..56108aa 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -27,4 +27,5 @@ libnss_nis_la_LIBADD = @LIBNSL_LIBS@ + libnss_nis_la_SOURCES = nis-alias.c nis-ethers.c nis-grp.c nis-hosts.c \ + nis-initgroups.c nis-netgrp.c nis-network.c \ + nis-proto.c nis-publickey.c nis-pwd.c nis-rpc.c \ +- nis-service.c nis-spwd.c nss-nis.c nss-default.c ++ nis-service.c nis-spwd.c nss-nis.c nss-default.c \ ++ map_v4v6_address.h +diff --git a/src/map_v4v6_address.h b/src/map_v4v6_address.h +new file mode 100644 +index 0000000..d9a46c9 +--- /dev/null ++++ b/src/map_v4v6_address.h +@@ -0,0 +1,68 @@ ++/* ++ * ++Copyright++ 1985, 1988, 1993 ++ * - ++ * Copyright (c) 1985, 1988, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * - ++ * Portions Copyright (c) 1993 by Digital Equipment Corporation. ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies, and that ++ * the name of Digital Equipment Corporation not be used in advertising or ++ * publicity pertaining to distribution of the document or software without ++ * specific, written prior permission. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL ++ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT ++ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL ++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ * - ++ * --Copyright-- ++ */ ++ ++static void ++map_v4v6_address (const char *src, char *dst) ++{ ++ u_char *p = (u_char *)dst; ++ char tmp[INADDRSZ]; ++ int i; ++ ++ /* Stash a temporary copy so our caller can update in place. */ ++ memcpy(tmp, src, INADDRSZ); ++ /* Mark this ipv6 addr as a mapped ipv4. */ ++ for (i = 0; i < 10; i++) ++ *p++ = 0x00; ++ *p++ = 0xff; ++ *p++ = 0xff; ++ /* Retrieve the saved copy and we're done. */ ++ memcpy((void*)p, tmp, INADDRSZ); ++} +diff --git a/src/nis-hosts.c b/src/nis-hosts.c +index ef6bb47..53ab965 100644 +--- a/src/nis-hosts.c ++++ b/src/nis-hosts.c +@@ -35,8 +35,7 @@ + #include "libc-lock.h" + #include "nss-nis.h" + +-/* Get implementation for some internal functions. */ +-#include <resolv/mapv4v6addr.h> ++#include "map_v4v6_address.h" + + #define ENTNAME hostent + #define DATABASE "hosts" |