put reallocarray() in the public namespace
reallocarray() will be part of the next POSIX release, see https://austingroupbugs.net/view.php?id=1218 adapt an errno value to match POSIX expectations As discussed on tech-userlevel
This commit is contained in:
parent
8d32d3a8db
commit
dd8db24513
|
@ -1,10 +1,10 @@
|
|||
# $NetBSD: Makefile,v 1.4 2022/10/16 23:38:02 mrg Exp $
|
||||
# $NetBSD: Makefile,v 1.5 2022/10/28 09:43:58 wiz Exp $
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
PROG= fslsfonts
|
||||
|
||||
CPPFLAGS+= -DHAVE_REALLOCARRAY -D_OPENBSD_SOURCE
|
||||
CPPFLAGS+= -DHAVE_REALLOCARRAY
|
||||
|
||||
LDADD+= -lFS
|
||||
DPADD+= ${LIBFS}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile,v 1.8 2021/04/12 06:08:30 mrg Exp $
|
||||
# $NetBSD: Makefile,v 1.9 2022/10/28 09:43:58 wiz Exp $
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
|
@ -7,6 +7,7 @@ SRCS= xauth.c gethost.c process.c parsedpy.c
|
|||
|
||||
CPPFLAGS+= -DRETSIGTYPE=void -DPACKAGE_VERSION=\"1.0.8\"
|
||||
CPPFLAGS+= -DHAVE_STRLCPY
|
||||
CPPFLAGS+= -DHAVE_REALLOCARRAY
|
||||
CPPFLAGS.gethost.c= ${X11FLAGS.CONNECTION}
|
||||
CPPFLAGS.parsedpy.c= ${X11FLAGS.CONNECTION}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile,v 1.9 2022/09/19 18:46:06 christos Exp $
|
||||
# $NetBSD: Makefile,v 1.10 2022/10/28 09:43:58 wiz Exp $
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
|
@ -6,6 +6,7 @@ PROG= xrdb
|
|||
|
||||
CPPFLAGS+=-DCPP="\"/usr/bin/tradcpp -nostdinc\"" -DHAVE_MKSTEMP # XXX
|
||||
CPPFLAGS+=-DHAVE_ASPRINTF
|
||||
CPPFLAGS+=-DHAVE_REALLOCARRAY
|
||||
|
||||
LDADD+= -lXmuu -lXt -lSM -lICE -lXext -lX11
|
||||
DPADD+= ${LIBXMUU} ${LIBXT} ${LIBSM} ${LIBICE} ${LIBXEXT} ${LIBX11}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile,v 1.4 2022/09/09 03:46:29 mrg Exp $
|
||||
# $NetBSD: Makefile,v 1.5 2022/10/28 09:43:58 wiz Exp $
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
|
@ -18,7 +18,6 @@ INCS= FSlib.h
|
|||
INCSDIR=${X11INCDIR}/X11/fonts
|
||||
|
||||
CPPFLAGS+= -I${DESTDIR}${X11INCDIR}/X11/fonts \
|
||||
-D_OPENBSD_SOURCE \
|
||||
-DHAVE_REALLOCARRAY \
|
||||
-DHAVE_STRNLEN \
|
||||
-DHAVE_STRLCPY \
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile.libx11,v 1.24 2022/07/14 07:40:48 mrg Exp $
|
||||
# $NetBSD: Makefile.libx11,v 1.25 2022/10/28 09:43:58 wiz Exp $
|
||||
|
||||
LIB= X11
|
||||
.PATH: ${X11SRCDIR.${LIB}}/src
|
||||
|
@ -404,7 +404,7 @@ CPPFLAGS+= -DHAVE_SYS_SELECT_H -DHAVE_SYS_STAT_H -DHAVE_SYS_TYPES_H
|
|||
CPPFLAGS+= -DHAVE_UNISTD_H
|
||||
CPPFLAGS+= -DHAVE_STRCASECMP -DHAVE_STRLCPY -DHAVE_STRTOL
|
||||
CPPFLAGS+= -DHAVE_SYS_FILIO_H -DHAVE_SYS_IOCTL_H -DHAVE_SYS_SOCKET_H
|
||||
CPPFLAGS+= -DHAVE_REALLOCARRAY -D_OPENBSD_SOURCE
|
||||
CPPFLAGS+= -DHAVE_REALLOCARRAY
|
||||
CPPFLAGS+= -DHAVE_STRCASECMP -DHAVE_STRLCPY -DHAVE___BUILTIN_POPCOUNTL
|
||||
CPPFLAGS+= -DUSE_THREAD_SAFETY_CONSTRUCTOR
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile,v 1.10 2022/09/14 07:37:05 mrg Exp $
|
||||
# $NetBSD: Makefile,v 1.11 2022/10/28 09:43:58 wiz Exp $
|
||||
|
||||
USE_FORT?= yes # data-driven bugs?
|
||||
|
||||
|
@ -104,7 +104,7 @@ INCSDIR=${X11INCDIR}/X11/fonts
|
|||
|
||||
CPPFLAGS+= ${X11FLAGS.THREADLIB} ${X11FLAGS.CONNECTION}
|
||||
CPPFLAGS+= -DHAVE_STRLCPY
|
||||
CPPFLAGS+= -DHAVE_REALLOCARRAY -D_OPENBSD_SOURCE
|
||||
CPPFLAGS+= -DHAVE_REALLOCARRAY
|
||||
CPPFLAGS+= -DHAVE_READLINK
|
||||
CPPFLAGS+= -DHAVE_STDINT_H
|
||||
CPPFLAGS+= -DHAVE_STRLCPY
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile,v 1.4 2022/09/09 03:49:19 mrg Exp $
|
||||
# $NetBSD: Makefile,v 1.5 2022/10/28 09:43:59 wiz Exp $
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
|
@ -14,7 +14,7 @@ INCSDIR=${X11INCDIR}/X11/fonts
|
|||
CPPFLAGS+= -DFONTENC_NO_LIBFONT
|
||||
CPPFLAGS+= -DFONT_ENCODINGS_DIRECTORY=\"${X11FONTDIR}/encodings/encodings.dir\"
|
||||
CPPFLAGS+= -I${DESTDIR}${X11INCDIR}/X11/fonts
|
||||
CPPFLAGS+= -DHAVE_REALLOCARRAY -D_OPENBSD_SOURCE
|
||||
CPPFLAGS+= -DHAVE_REALLOCARRAY
|
||||
|
||||
LIBDPLIBS+= z ${NETBSDSRCDIR}/lib/libz
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile.serverlib,v 1.16 2022/07/15 04:18:54 mrg Exp $
|
||||
# $NetBSD: Makefile.serverlib,v 1.17 2022/10/28 09:43:59 wiz Exp $
|
||||
|
||||
NOFULLRELRO= yes
|
||||
|
||||
|
@ -22,7 +22,7 @@ X_BYTE_ORDER=X_BIG_ENDIAN
|
|||
X_BYTE_ORDER=0
|
||||
.endif
|
||||
|
||||
CPPFLAGS+= ${X11FLAGS.SERVER} -D_OPENBSD_SOURCE
|
||||
CPPFLAGS+= ${X11FLAGS.SERVER}
|
||||
CPPFLAGS+= -DXORG_VERSION_CURRENT=${XORG_VERSION_CURRENT}
|
||||
|
||||
.if ${HAVE_XORG_GLAMOR} != "no"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile.servermod,v 1.9 2022/07/15 04:18:54 mrg Exp $
|
||||
# $NetBSD: Makefile.servermod,v 1.10 2022/10/28 09:43:59 wiz Exp $
|
||||
|
||||
NOFULLRELRO= yes
|
||||
|
||||
|
@ -28,7 +28,7 @@ moduleinstall::
|
|||
CPPFLAGS+= ${X11FLAGS.LOADABLE}
|
||||
.endif
|
||||
|
||||
CPPFLAGS+= ${X11FLAGS.DIX} -D_OPENBSD_SOURCE
|
||||
CPPFLAGS+= ${X11FLAGS.DIX}
|
||||
|
||||
# IOPortBase is particularly annoying to fix
|
||||
COPTS+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -fcommon :}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile,v 1.13 2022/07/15 19:12:39 mrg Exp $
|
||||
# $NetBSD: Makefile,v 1.14 2022/10/28 09:43:59 wiz Exp $
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
|
@ -33,7 +33,6 @@ CPPFLAGS+= -UXFree86LOADER -UXF86VIDMODE -UXFreeXDGA -UXF86MISC \
|
|||
-UXF86DRI -UXF86BIGFONT
|
||||
|
||||
CPPFLAGS+= -UHAVE_XORG_CONFIG_H
|
||||
CPPFLAGS+= -D_OPENBSD_SOURCE
|
||||
|
||||
CPPFLAGS.x68kConfig.c= -DX11_LIBDIR=\"${X11ETCDIR}\"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile.Xsun,v 1.7 2022/07/15 19:12:39 mrg Exp $
|
||||
# $NetBSD: Makefile.Xsun,v 1.8 2022/10/28 09:43:59 wiz Exp $
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
|
@ -15,7 +15,7 @@ WARNS?= 2
|
|||
BUILDSYMLINKS=
|
||||
CPPFLAGS+= -DDEFAULT_LOGDIR=\"/var/log\" -DDEFAULT_LOGPREFIX=\"${PROG}.\"
|
||||
CPPFLAGS+= -DINCLUDE_CG2_HEADER
|
||||
CPPFLAGS+= -D_OPENBSD_SOURCE -D_XTYPEDEF_POINTER=1
|
||||
CPPFLAGS+= -D_XTYPEDEF_POINTER=1
|
||||
#CPPFLAGS+= -DLOWMEMFTPT
|
||||
|
||||
# for Xsun (8bpp)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile,v 1.22 2022/07/15 19:12:39 mrg Exp $
|
||||
# $NetBSD: Makefile,v 1.23 2022/10/28 09:43:59 wiz Exp $
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
|
@ -28,8 +28,7 @@ CPPFLAGS+= -I${DESTDIR}${X11INCDIR}/X11 \
|
|||
-UGLXEXT
|
||||
|
||||
CPPFLAGS+= ${X11FLAGS.OS_DEFINES} ${X11FLAGS.DIX} \
|
||||
-DHAS_SHM -DHAS_MMAP -UXFree86LOADER \
|
||||
-D_OPENBSD_SOURCE
|
||||
-DHAS_SHM -DHAS_MMAP -UXFree86LOADER
|
||||
|
||||
.include "../../Makefile.common"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile,v 1.18 2022/07/15 04:18:56 mrg Exp $
|
||||
# $NetBSD: Makefile,v 1.19 2022/10/28 09:43:59 wiz Exp $
|
||||
|
||||
.include "../Makefile.serverlib"
|
||||
.include "../Makefile.servermod"
|
||||
|
@ -11,7 +11,6 @@ SRCS= WaitFor.c access.c auth.c backtrace.c client.c connection.c \
|
|||
oscolor.c ospoll.c osinit.c utils.c xdmauth.c \
|
||||
xstrans.c xprintf.c log.c xdmcp.c busfault.c \
|
||||
rpcauth.c xsha1.c \
|
||||
reallocarray.c \
|
||||
timingsafe_memcmp.c
|
||||
|
||||
CPPFLAGS+= -I${X11SRCDIR.xorg-server}/include \
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: stdlib.h,v 1.124 2022/10/05 12:09:07 nia Exp $ */
|
||||
/* $NetBSD: stdlib.h,v 1.125 2022/10/28 09:43:59 wiz Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -118,6 +118,7 @@ void *malloc(size_t);
|
|||
void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
|
||||
int rand(void);
|
||||
void *realloc(void *, size_t);
|
||||
void *reallocarray(void *, size_t, size_t);
|
||||
void srand(unsigned);
|
||||
double strtod(const char * __restrict, char ** __restrict);
|
||||
long strtol(const char * __restrict, char ** __restrict, int);
|
||||
|
@ -125,7 +126,6 @@ unsigned long
|
|||
strtoul(const char * __restrict, char ** __restrict, int);
|
||||
#ifdef _OPENBSD_SOURCE
|
||||
long long strtonum(const char *, long long, long long, const char **);
|
||||
void *reallocarray(void *, size_t, size_t);
|
||||
#endif
|
||||
int system(const char *);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: reallocarray.3,v 1.4 2015/07/26 02:29:44 kamil Exp $
|
||||
.\" $NetBSD: reallocarray.3,v 1.5 2022/10/28 09:43:59 wiz Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2015 The NetBSD Foundation, Inc.
|
||||
.\" All rights reserved.
|
||||
|
@ -27,14 +27,13 @@
|
|||
.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd February 5, 2015
|
||||
.Dd September 9, 2022
|
||||
.Dt REALLOCARRAY 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm reallocarray
|
||||
.Nd reallocate memory for an array of elements checking for overflow
|
||||
.Sh SYNOPSIS
|
||||
.Vt #define _OPENBSD_SOURCE
|
||||
.In stdlib.h
|
||||
.Ft void *
|
||||
.Fo reallocarray
|
||||
|
@ -55,12 +54,8 @@ bytes using
|
|||
.Xr realloc 3
|
||||
and making sure that overflow does not happen in the multiplication of
|
||||
.Dq "nmemb * size" .
|
||||
.Pp
|
||||
This function is provided for source compatibility with
|
||||
.Ox
|
||||
and
|
||||
its use is discouraged in preference to
|
||||
.Xr reallocarr 3 .
|
||||
Otherwise it behaves like
|
||||
.Xr realloc 3 .
|
||||
.Sh RETURN VALUES
|
||||
The
|
||||
.Fn reallocarray
|
||||
|
@ -71,18 +66,15 @@ if there was overflow or if
|
|||
failed setting
|
||||
.Va errno
|
||||
to
|
||||
.Dv EOVERFLOW
|
||||
.Dv ENOMEM
|
||||
or preserving the value from
|
||||
.Xr realloc 3 .
|
||||
.Sh SEE ALSO
|
||||
.Xr malloc 3 ,
|
||||
.Xr realloc 3 ,
|
||||
.Xr reallocarr 3
|
||||
.Sh STANDARDS
|
||||
.Fn reallocarray
|
||||
is an
|
||||
.Ox
|
||||
extension.
|
||||
.\" .Sh STANDARDS
|
||||
.\" Will be part of POSIX, but isn't yet.
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Fn reallocarray
|
||||
|
@ -93,9 +85,10 @@ was redesigned in
|
|||
.Nx 8
|
||||
as
|
||||
.Fn reallocarr 3 .
|
||||
For compatibility reasons it's available since
|
||||
.Nx 8
|
||||
in the
|
||||
Until
|
||||
.Nx 10 ,
|
||||
.Nm
|
||||
was available in the
|
||||
.Vt _OPENBSD_SOURCE
|
||||
namespace.
|
||||
.Sh CAVEATS
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: reallocarray.c,v 1.11 2021/02/26 19:25:12 christos Exp $ */
|
||||
/* $NetBSD: reallocarray.c,v 1.12 2022/10/28 09:43:59 wiz Exp $ */
|
||||
/* $OpenBSD: reallocarray.c,v 1.1 2014/05/08 21:43:49 deraadt Exp $ */
|
||||
|
||||
/*-
|
||||
|
@ -35,7 +35,7 @@
|
|||
#endif /* HAVE_NBTOOL_CONFIG_H */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__RCSID("$NetBSD: reallocarray.c,v 1.11 2021/02/26 19:25:12 christos Exp $");
|
||||
__RCSID("$NetBSD: reallocarray.c,v 1.12 2022/10/28 09:43:59 wiz Exp $");
|
||||
|
||||
#include "namespace.h"
|
||||
|
||||
|
@ -54,6 +54,10 @@ reallocarray(void *optr, size_t nmemb, size_t size)
|
|||
e = reallocarr(&optr, nmemb, size);
|
||||
if (e == 0)
|
||||
return optr;
|
||||
errno = e;
|
||||
if (e == EOVERFLOW)
|
||||
errno = ENOMEM;
|
||||
else
|
||||
errno = e;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue