From 8b0682644e2da9c595d9249c9a0c8eb499421b5e Mon Sep 17 00:00:00 2001 From: Kyle Evans Date: Mon, 13 May 2024 11:13:51 -0500 Subject: Fix the GCC build after _FORTIFY_SOURCE import We haven't exposed gets(3) in a long time, rip out __gets_chk before it's too late and something builds a gets(3) user with it enabled. --- lib/libc/secure/Makefile.inc | 2 +- lib/libc/secure/Symbol.map | 1 - lib/libc/secure/gets_chk.c | 74 -------------------------------------------- 3 files changed, 1 insertion(+), 76 deletions(-) delete mode 100644 lib/libc/secure/gets_chk.c (limited to 'lib/libc') diff --git a/lib/libc/secure/Makefile.inc b/lib/libc/secure/Makefile.inc index 3b1ad879c715..28289127c7a6 100644 --- a/lib/libc/secure/Makefile.inc +++ b/lib/libc/secure/Makefile.inc @@ -4,7 +4,7 @@ .PATH: ${LIBC_SRCTOP}/secure # _FORTIFY_SOURCE -SRCS+= gets_chk.c fgets_chk.c memcpy_chk.c memmove_chk.c memset_chk.c \ +SRCS+= fgets_chk.c memcpy_chk.c memmove_chk.c memset_chk.c \ snprintf_chk.c sprintf_chk.c stpcpy_chk.c stpncpy_chk.c \ strcat_chk.c strcpy_chk.c strncat_chk.c strncpy_chk.c \ vsnprintf_chk.c vsprintf_chk.c diff --git a/lib/libc/secure/Symbol.map b/lib/libc/secure/Symbol.map index 7859fcee3821..0d854039955f 100644 --- a/lib/libc/secure/Symbol.map +++ b/lib/libc/secure/Symbol.map @@ -5,7 +5,6 @@ FBSD_1.0 { }; FBSD_1.8 { - __gets_chk; __fgets_chk; __memcpy_chk; __memmove_chk; diff --git a/lib/libc/secure/gets_chk.c b/lib/libc/secure/gets_chk.c deleted file mode 100644 index 18c1e2d18f43..000000000000 --- a/lib/libc/secure/gets_chk.c +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2006 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Christos Zoulas. - * - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. - */ -#include -__RCSID("$NetBSD: gets_chk.c,v 1.7 2013/10/04 20:49:16 christos Exp $"); - -#include -#include -#include -#include - -#include -#include - -char *__gets_unsafe(char *); - -char * -__gets_chk(char * __restrict buf, size_t slen) -{ - char *abuf; - size_t len; - - if (slen >= (size_t)INT_MAX) - return (__gets_unsafe(buf)); - - if ((abuf = malloc(slen + 1)) == NULL) - return (__gets_unsafe(buf)); - - if (fgets(abuf, (int)(slen + 1), stdin) == NULL) { - free(abuf); - return (NULL); - } - - len = strlen(abuf); - if (len > 0 && abuf[len - 1] == '\n') - --len; - - if (len >= slen) - __chk_fail(); - - (void)memcpy(buf, abuf, len); - - buf[len] = '\0'; - free(abuf); - return (buf); -} -- cgit v1.2.3