From: Alejandro Colomar Date: Sun, 8 Dec 2024 11:09:15 +0000 (+0100) Subject: lib/alloc/x/: X*ALLOC(): Reimplement in terms of exit_if_null() X-Git-Tag: 4.19.0-rc1~119 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=335995a8add1f6cb5ea6f9f10e4eede0c550935a;p=thirdparty%2Fshadow.git lib/alloc/x/: X*ALLOC(): Reimplement in terms of exit_if_null() Signed-off-by: Alejandro Colomar --- diff --git a/lib/alloc/x/xcalloc.c b/lib/alloc/x/xcalloc.c index e236e7ecc..107f05490 100644 --- a/lib/alloc/x/xcalloc.c +++ b/lib/alloc/x/xcalloc.c @@ -1,7 +1,3 @@ -// SPDX-FileCopyrightText: 1990-1994, Julianne Frances Haugh -// SPDX-FileCopyrightText: 1996-1998, Marek Michałkiewicz -// SPDX-FileCopyrightText: 2003-2006, Tomasz Kłoczko -// SPDX-FileCopyrightText: 2008 , Nicolas François // SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar // SPDX-License-Identifier: BSD-3-Clause @@ -9,28 +5,3 @@ #include "config.h" #include "alloc/x/xcalloc.h" - -#include -#include -#include - -#include "defines.h" -#include "shadowlog.h" - - -void * -xcalloc(size_t nmemb, size_t size) -{ - void *p; - - p = calloc(nmemb, size); - if (p == NULL) - goto x; - - return p; - -x: - fprintf(log_get_logfd(), _("%s: %s\n"), - log_get_progname(), strerror(errno)); - exit(13); -} diff --git a/lib/alloc/x/xcalloc.h b/lib/alloc/x/xcalloc.h index 03f6c3e78..849d0728b 100644 --- a/lib/alloc/x/xcalloc.h +++ b/lib/alloc/x/xcalloc.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-FileCopyrightText: 2023-2025, Alejandro Colomar // SPDX-License-Identifier: BSD-3-Clause @@ -8,21 +8,11 @@ #include "config.h" -#include -#include +#include "alloc/calloc.h" +#include "exit_if_null.h" -#include "attr.h" - -#define XCALLOC(n, type) \ -( \ - (type *) xcalloc(n, sizeof(type)) \ -) - - -ATTR_ALLOC_SIZE(1, 2) -ATTR_MALLOC(free) -void *xcalloc(size_t nmemb, size_t size); +#define XCALLOC(n, type) exit_if_null(CALLOC(n, type)) #endif // include guard diff --git a/lib/alloc/x/xmalloc.c b/lib/alloc/x/xmalloc.c index 6d19a6609..ab03820b7 100644 --- a/lib/alloc/x/xmalloc.c +++ b/lib/alloc/x/xmalloc.c @@ -1,7 +1,3 @@ -// SPDX-FileCopyrightText: 1990-1994, Julianne Frances Haugh -// SPDX-FileCopyrightText: 1996-1998, Marek Michałkiewicz -// SPDX-FileCopyrightText: 2003-2006, Tomasz Kłoczko -// SPDX-FileCopyrightText: 2008 , Nicolas François // SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar // SPDX-License-Identifier: BSD-3-Clause @@ -9,8 +5,3 @@ #include "config.h" #include "alloc/x/xmalloc.h" - -#include - - -extern inline void *xmallocarray(size_t nmemb, size_t size); diff --git a/lib/alloc/x/xmalloc.h b/lib/alloc/x/xmalloc.h index 06664a8b8..5a1c13bc4 100644 --- a/lib/alloc/x/xmalloc.h +++ b/lib/alloc/x/xmalloc.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-FileCopyrightText: 2023-2025, Alejandro Colomar // SPDX-License-Identifier: BSD-3-Clause @@ -8,28 +8,11 @@ #include "config.h" -#include +#include "alloc/malloc.h" +#include "exit_if_null.h" -#include "alloc/x/xrealloc.h" -#include "attr.h" - -#define XMALLOC(n, type) \ -( \ - (type *) xmallocarray(n, sizeof(type)) \ -) - - -ATTR_ALLOC_SIZE(1, 2) -ATTR_MALLOC(free) -inline void *xmallocarray(size_t nmemb, size_t size); - - -inline void * -xmallocarray(size_t nmemb, size_t size) -{ - return xreallocarray(NULL, nmemb, size); -} +#define XMALLOC(n, type) exit_if_null(MALLOC(n, type)) #endif // include guard diff --git a/lib/alloc/x/xrealloc.c b/lib/alloc/x/xrealloc.c index 7269f5c98..d04ed2486 100644 --- a/lib/alloc/x/xrealloc.c +++ b/lib/alloc/x/xrealloc.c @@ -1,7 +1,3 @@ -// SPDX-FileCopyrightText: 1990-1994, Julianne Frances Haugh -// SPDX-FileCopyrightText: 1996-1998, Marek Michałkiewicz -// SPDX-FileCopyrightText: 2003-2006, Tomasz Kłoczko -// SPDX-FileCopyrightText: 2008 , Nicolas François // SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar // SPDX-License-Identifier: BSD-3-Clause @@ -9,27 +5,3 @@ #include "config.h" #include "alloc/x/xrealloc.h" - -#include -#include -#include - -#include "alloc/reallocf.h" -#include "defines.h" -#include "shadowlog.h" - - -void * -xreallocarray(void *p, size_t nmemb, size_t size) -{ - p = reallocarrayf(p, nmemb, size); - if (p == NULL) - goto x; - - return p; - -x: - fprintf(log_get_logfd(), _("%s: %s\n"), - log_get_progname(), strerror(errno)); - exit(13); -} diff --git a/lib/alloc/x/xrealloc.h b/lib/alloc/x/xrealloc.h index c8d126eb1..c395a7308 100644 --- a/lib/alloc/x/xrealloc.h +++ b/lib/alloc/x/xrealloc.h @@ -1,31 +1,18 @@ -// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-FileCopyrightText: 2023-2025, Alejandro Colomar // SPDX-License-Identifier: BSD-3-Clause -#ifndef SHADOW_INCLUDE_LIB_MALLOC_H_ -#define SHADOW_INCLUDE_LIB_MALLOC_H_ +#ifndef SHADOW_INCLUDE_LIB_ALLOC_X_XREALLOC_H_ +#define SHADOW_INCLUDE_LIB_ALLOC_X_XREALLOC_H_ #include "config.h" -#include -#include -#include -#include -#include +#include "alloc/realloc.h" +#include "exit_if_null.h" -#include "attr.h" - -#define XREALLOC(ptr, n, type) \ -( \ - _Generic(ptr, type *: (type *) xreallocarray(ptr, n, sizeof(type))) \ -) - - -ATTR_ALLOC_SIZE(2, 3) -ATTR_MALLOC(free) -void *xreallocarray(void *p, size_t nmemb, size_t size); +#define XREALLOC(p, n, type) exit_if_null(REALLOC(p, n, type)) #endif // include guard