From 3cf12c9c6ac6579cfe07d9ddafeecf954d6940de Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 18 Oct 2018 14:11:10 +0200 Subject: Remove strlcat(), strlcpy(), strsep(), readdir_r() These functions are provided by Newlib since 2002. Update #3409. --- cpukit/Makefile.am | 4 -- cpukit/configure.ac | 7 +-- cpukit/libcsupport/src/readdir_r.c | 35 --------------- cpukit/libcsupport/src/strlcat.c | 47 -------------------- cpukit/libcsupport/src/strlcpy.c | 49 --------------------- cpukit/libnetworking/libc/strsep.c | 88 -------------------------------------- 6 files changed, 2 insertions(+), 228 deletions(-) delete mode 100644 cpukit/libcsupport/src/readdir_r.c delete mode 100644 cpukit/libcsupport/src/strlcat.c delete mode 100644 cpukit/libcsupport/src/strlcpy.c delete mode 100644 cpukit/libnetworking/libc/strsep.c diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am index b7a44f377d..f8afd14a30 100644 --- a/cpukit/Makefile.am +++ b/cpukit/Makefile.am @@ -202,7 +202,6 @@ librtemscpu_a_SOURCES += libcsupport/src/privateenv.c librtemscpu_a_SOURCES += libcsupport/src/putk.c librtemscpu_a_SOURCES += libcsupport/src/pwdgrp.c librtemscpu_a_SOURCES += libcsupport/src/read.c -librtemscpu_a_SOURCES += libcsupport/src/readdir_r.c librtemscpu_a_SOURCES += libcsupport/src/readlink.c librtemscpu_a_SOURCES += libcsupport/src/readv.c librtemscpu_a_SOURCES += libcsupport/src/realloc.c @@ -227,8 +226,6 @@ librtemscpu_a_SOURCES += libcsupport/src/setsid.c librtemscpu_a_SOURCES += libcsupport/src/setuid.c librtemscpu_a_SOURCES += libcsupport/src/stat.c librtemscpu_a_SOURCES += libcsupport/src/statvfs.c -librtemscpu_a_SOURCES += libcsupport/src/strlcat.c -librtemscpu_a_SOURCES += libcsupport/src/strlcpy.c librtemscpu_a_SOURCES += libcsupport/src/sup_fs_check_permissions.c librtemscpu_a_SOURCES += libcsupport/src/sup_fs_deviceio.c librtemscpu_a_SOURCES += libcsupport/src/sup_fs_eval_path.c @@ -1241,7 +1238,6 @@ librtemscpu_a_SOURCES += libnetworking/libc/res_send.c librtemscpu_a_SOURCES += libnetworking/libc/res_stubs.c librtemscpu_a_SOURCES += libnetworking/libc/res_update.c librtemscpu_a_SOURCES += libnetworking/libc/send.c -librtemscpu_a_SOURCES += libnetworking/libc/strsep.c librtemscpu_a_SOURCES += libnetworking/lib/getprotoby.c librtemscpu_a_SOURCES += libnetworking/lib/rtems_bsdnet_ntp.c librtemscpu_a_SOURCES += libnetworking/lib/syslog.c diff --git a/cpukit/configure.ac b/cpukit/configure.ac index 2c5e4a1f82..18bebf9412 100644 --- a/cpukit/configure.ac +++ b/cpukit/configure.ac @@ -58,7 +58,7 @@ RTEMS_CHECK_NEWLIB # BSD-isms, used throughout the sources # Not really used by this configure script # FIXME: They should be eliminated if possible. -AC_CHECK_FUNCS([strsep strcasecmp snprintf]) +AC_CHECK_FUNCS([strcasecmp snprintf]) AC_CHECK_FUNCS([strdup strndup strncasecmp]) AC_CHECK_FUNCS([bcopy bcmp]) AC_CHECK_FUNCS([isascii fileno]) @@ -66,7 +66,7 @@ AC_CHECK_FUNCS([isascii fileno]) # # Check for functions supplied by newlib >= 1.17.0 # Newlib's posix/ directory -AC_CHECK_FUNCS([readdir_r isatty]) +AC_CHECK_FUNCS([isatty]) AC_CHECK_FUNCS([creat \ opendir closedir readdir rewinddir scandir seekdir \ sleep \ @@ -374,9 +374,6 @@ AC_CHECK_DECLS([LONG_BIT],,,[#include ]) AC_CHECK_DECLS([sbrk],,,[#include ]) AC_CHECK_DECLS([rcmd],,,[#include ]) -## Check if libc provides BSD's strlcpy/strlcat -AC_CHECK_FUNCS(strlcpy strlcat) - ## Check if libc provides decl of utime ## FIXME: utime has been deprecated in SUSv4. ## and is likely to be removed in future versions. diff --git a/cpukit/libcsupport/src/readdir_r.c b/cpukit/libcsupport/src/readdir_r.c deleted file mode 100644 index 0347f25d8b..0000000000 --- a/cpukit/libcsupport/src/readdir_r.c +++ /dev/null @@ -1,35 +0,0 @@ -/** - * @file - * - * @brief Read a Directory - * @ingroup libcsupport - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#ifndef HAVE_READDIR_R - -#include -#include -#include -#include - -/** - * The RTEMS version of readdir is already thread-safe. - * This routine is reentrant version of readdir(). - */ -int readdir_r( - DIR *__restrict dirp, - struct dirent *__restrict entry, - struct dirent **__restrict result -) -{ - *result = readdir(dirp); - if (*result) - *entry = **result; - return *result ? 0 : errno; -} - -#endif diff --git a/cpukit/libcsupport/src/strlcat.c b/cpukit/libcsupport/src/strlcat.c deleted file mode 100644 index 6ca17b9d40..0000000000 --- a/cpukit/libcsupport/src/strlcat.c +++ /dev/null @@ -1,47 +0,0 @@ -/** - * @file - * - * @brief Concatenate a Strings - * @ingroup libcsupport - */ - -/* - * Copyright (c) 1999 The Australian National University. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * advertising materials, and other materials related to such - * distribution and use acknowledge that the software was developed - * by the Australian National University. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#include - -#ifndef HAVE_STRLCAT - -/** - * like strcat/strncat, doesn't overflow destination buffer, - * always leaves destination null-terminated (for len > 0). - */ -size_t -strlcat( - char *dest, - const char *src, - size_t len ) -{ - size_t dlen = strlen(dest); - - return dlen + strlcpy(dest + dlen, src, (len > dlen? len - dlen: 0)); -} -#endif diff --git a/cpukit/libcsupport/src/strlcpy.c b/cpukit/libcsupport/src/strlcpy.c deleted file mode 100644 index 2773e877cb..0000000000 --- a/cpukit/libcsupport/src/strlcpy.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * utils.c - various utility functions used in pppd. - * - * Copyright (c) 1999 The Australian National University. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * advertising materials, and other materials related to such - * distribution and use acknowledge that the software was developed - * by the Australian National University. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#include - -#ifndef HAVE_STRLCPY -/* - * strlcpy - like strcpy/strncpy, doesn't overflow destination buffer, - * always leaves destination null-terminated (for len > 0). - */ -size_t -strlcpy(dest, src, len) - char *dest; - const char *src; - size_t len; -{ - size_t ret = strlen(src); - - if (len != 0) { - if (ret < len) - strcpy(dest, src); - else { - strncpy(dest, src, len - 1); - dest[len-1] = 0; - } - } - return ret; -} -#endif diff --git a/cpukit/libnetworking/libc/strsep.c b/cpukit/libnetworking/libc/strsep.c deleted file mode 100644 index e7b52a9cbf..0000000000 --- a/cpukit/libnetworking/libc/strsep.c +++ /dev/null @@ -1,88 +0,0 @@ -#include - -/*- - * Copyright (c) 1990, 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 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. - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#if !HAVE_STRSEP - -#include -#include - -/* - * Get next token from string *stringp, where tokens are possibly-empty - * strings separated by characters from delim. - * - * Writes NULs into the string at *stringp to end tokens. - * delim need not remain constant from call to call. - * On return, *stringp points past the last NUL written (if there might - * be further tokens), or is NULL (if there are definitely no more tokens). - * - * If *stringp is NULL, strsep returns NULL. - * - * PUBLIC: #ifndef HAVE_STRSEP - * PUBLIC: char *strsep __P((char **, const char *)); - * PUBLIC: #endif - */ -char * -strsep(stringp, delim) - register char **stringp; - register const char *delim; -{ - register char *s; - register const char *spanp; - register int c, sc; - char *tok; - - if ((s = *stringp) == NULL) - return (NULL); - for (tok = s;;) { - c = *s++; - spanp = delim; - do { - if ((sc = *spanp++) == c) { - if (c == 0) - s = NULL; - else - s[-1] = 0; - *stringp = s; - return (tok); - } - } while (sc != 0); - } - /* NOTREACHED */ -} -#endif -- cgit v1.2.3