diff --git a/LICENSE.rst b/LICENSE.rst index 91d3a42f..e4e21854 100644 --- a/LICENSE.rst +++ b/LICENSE.rst @@ -26,6 +26,3 @@ Other extern/reallocarray.c is derived from the OpenBSD Project, http://www.openbsd.org, and is released under the ISC license. - -extern/strlcpy.c is derived from the OpenBSD Project, http://www.openbsd.org, -and is released under the BSD license. diff --git a/Makefile b/Makefile index 5c740ac2..45ec6c36 100644 --- a/Makefile +++ b/Makefile @@ -58,7 +58,6 @@ rgbasm_obj := \ src/asm/symbol.o \ src/extern/err.o \ src/extern/reallocarray.o \ - src/extern/strlcpy.o \ src/extern/utf8decoder.o \ src/extern/version.o diff --git a/include/extern/strl.h b/include/extern/strl.h deleted file mode 100644 index ffcb7570..00000000 --- a/include/extern/strl.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * This file is part of RGBDS. - * - * Copyright (c) 2015-2018, RGBDS contributors. - * - * SPDX-License-Identifier: MIT - */ - -#ifndef EXTERN_STRL_H -#define EXTERN_STRL_H - -#ifdef STRL_IN_LIBC - -#include - -#else /* STRL_IN_LIBC */ - -#define strlcpy rgbds_strlcpy -size_t strlcpy(char *dst, const char *src, size_t dsize); - -#endif /* STRL_IN_LIBC */ - -#endif /* EXTERN_STRL_H */ diff --git a/src/asm/fstack.c b/src/asm/fstack.c index df2f2f32..199a2ed1 100644 --- a/src/asm/fstack.c +++ b/src/asm/fstack.c @@ -24,7 +24,6 @@ #include "asm/symbol.h" #include "extern/err.h" -#include "extern/strl.h" #include "types.h" @@ -226,8 +225,12 @@ void fstk_AddIncludePath(char *s) if (NextIncPath == MAXINCPATHS) fatalerror("Too many include directories passed from command line"); - if (strlcpy(IncludePaths[NextIncPath++], s, _MAX_PATH) >= _MAX_PATH) + if (strlen(s) >= sizeof(IncludePaths[0])) fatalerror("Include path too long '%s'", s); + + strncpy(IncludePaths[NextIncPath], s, sizeof(IncludePaths[0])); + + NextIncPath++; } FILE *fstk_FindFile(char *fname) diff --git a/src/extern/strlcpy.c b/src/extern/strlcpy.c deleted file mode 100644 index 0dda7beb..00000000 --- a/src/extern/strlcpy.c +++ /dev/null @@ -1,52 +0,0 @@ -/* $OpenBSD: strlcpy.c,v 1.12 2015/01/15 03:54:12 millert Exp $ */ - -/* - * Copyright (c) 1998, 2015 Todd C. Miller - * - * 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. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR 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. - */ - -#include -#include - -/* - * Copy string src to buffer dst of size dsize. At most dsize-1 - * chars will be copied. Always NUL terminates (unless dsize == 0). - * Returns strlen(src); if retval >= dsize, truncation occurred. - */ -size_t rgbds_strlcpy(char *dst, const char *src, size_t dsize) -{ - const char *osrc = src; - size_t nleft = dsize; - - /* Copy as many bytes as will fit. */ - if (nleft != 0) { - while (--nleft != 0) { - char n = *src++; - *dst++ = n; - - if (n == '\0') - break; - } - } - - /* Not enough room in dst, add NUL and traverse rest of src. */ - if (nleft == 0) { - if (dsize != 0) - *dst = '\0'; /* NUL-terminate dst */ - while (*src++) - ; - } - - return (src - osrc - 1); /* count does not include NUL */ -}