diff --git a/Makefile b/Makefile index a46688a..dc3bd24 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ CC?=clang YC?=yacc BIN=doas PREFIX?=/usr/local -OBJECTS=doas.o env.o execvpe.o reallocarr.o y.tab.o +OBJECTS=doas.o env.o execvpe.o y.tab.o CFLAG+= -DUSE_PAM LFLAG+= -lpam @@ -18,9 +18,6 @@ execvpe.o: doas.h execvpe.c doas.o: doas.h doas.c parse.y $(CC) $(CFLAG) -c doas.c -reallocarr.o: reallocarr.c doas.h - $(CC) -c reallocarr.c - y.tab.o: parse.y $(YC) parse.y $(CC) -c y.tab.c diff --git a/env.c b/env.c index 85449ac..2b795d7 100644 --- a/env.c +++ b/env.c @@ -95,7 +95,6 @@ flattenenv(struct env *env) struct envnode *node; u_int i; - // envp = reallocarray(NULL, env->count + 1, sizeof(char *)); envp = realloc(NULL, (env->count + 1) * sizeof(char *)); if (!envp) err(1, NULL); diff --git a/parse.y b/parse.y index a2e57b8..d1e8d47 100644 --- a/parse.y +++ b/parse.y @@ -130,7 +130,7 @@ envlist: /* empty */ { /* if (!($$.envlist = reallocarray($1.envlist, nenv + 2, sizeof(char *)))) */ - if (!($$.envlist = realloc($1.envlist, (nenv + 2) + sizeof(char*)))) + if (!($$.envlist = realloc($1.envlist, (nenv + 2) * sizeof(char*)))) errx(1, "can't allocate envlist"); $$.envlist[nenv] = $2.str; $$.envlist[nenv + 1] = NULL; diff --git a/reallocarr.c b/reallocarr.c deleted file mode 100644 index 2def29a..0000000 --- a/reallocarr.c +++ /dev/null @@ -1,72 +0,0 @@ -/* NetBSD: reallocarr.c,v 1.2 2015/07/16 00:03:59 kamil Exp */ - -/*- - * Copyright (c) 2015 Joerg Sonnenberger . - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 - * COPYRIGHT HOLDERS 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 -/* Old POSIX has SIZE_MAX in limits.h */ -#include -#include -#include -#include - -#include "doas.h" - -#if !defined(HAVE_REALLOCARR) && !defined(HAVE_REALLOCARRAY) - -int -reallocarr(void *ptr, size_t num, size_t size) -{ - int saved_errno, result; - void *optr; - void *nptr; - - saved_errno = errno; - memcpy(&optr, ptr, sizeof(ptr)); - if (num == 0 || size == 0) { - free(optr); - nptr = NULL; - memcpy(ptr, &nptr, sizeof(ptr)); - errno = saved_errno; - return 0; - } - if ((num >= 65535 || size >= 65535) && num > SIZE_MAX / size) - return EOVERFLOW; - nptr = realloc(optr, num * size); - if (nptr == NULL) { - result = errno; - } else { - result = 0; - memcpy(ptr, &nptr, sizeof(ptr)); - } - errno = saved_errno; - return result; -} - -#endif