summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-auth/libnss-nis/files/map_v4v6_address.patch')
-rw-r--r--sys-auth/libnss-nis/files/map_v4v6_address.patch112
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"