From 3e9ac852bc8ddb10459790b37c4c7a2145a6a80b Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Tue, 27 Feb 2024 17:48:08 +0100 Subject: [PATCH] os: move alloc functions to separate source file Reduce the massive os/utils.c a little bit by moving out the alloc functions to their own source file. Signed-off-by: Enrico Weigelt, metux IT consult Part-of: --- os/alloc.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ os/meson.build | 1 + os/utils.c | 50 ----------------------------------------- 3 files changed, 61 insertions(+), 50 deletions(-) create mode 100644 os/alloc.c diff --git a/os/alloc.c b/os/alloc.c new file mode 100644 index 000000000..d808b0fe8 --- /dev/null +++ b/os/alloc.c @@ -0,0 +1,60 @@ +/* SPDX-License-Identifier: MIT OR X11 + * + * Copyright © 1987, 1998 The Open Group + * Copyright © 2024 Enrico Weigelt, metux IT consult + */ +#include + +#include + +#include "os.h" + +void * +XNFalloc(unsigned long amount) +{ + void *ptr = malloc(amount); + + if (!ptr) + FatalError("Out of memory"); + return ptr; +} + +/* The original XNFcalloc was used with the xnfcalloc macro which multiplied + * the arguments at the call site without allowing calloc to check for overflow. + * XNFcallocarray was added to fix that without breaking ABI. + */ +void * +XNFcalloc(unsigned long amount) +{ + return XNFcallocarray(1, amount); +} + +void * +XNFcallocarray(size_t nmemb, size_t size) +{ + void *ret = calloc(nmemb, size); + + if (!ret) + FatalError("XNFcalloc: Out of memory"); + return ret; +} + +void * +XNFrealloc(void *ptr, unsigned long amount) +{ + void *ret = realloc(ptr, amount); + + if (!ret) + FatalError("XNFrealloc: Out of memory"); + return ret; +} + +void * +XNFreallocarray(void *ptr, size_t nmemb, size_t size) +{ + void *ret = reallocarray(ptr, nmemb, size); + + if (!ret) + FatalError("XNFreallocarray: Out of memory"); + return ret; +} diff --git a/os/meson.build b/os/meson.build index a6cf8a444..00375d17c 100644 --- a/os/meson.build +++ b/os/meson.build @@ -1,6 +1,7 @@ srcs_os = [ 'WaitFor.c', 'access.c', + 'alloc.c', 'auth.c', 'backtrace.c', 'client.c', diff --git a/os/utils.c b/os/utils.c index 8287a66f5..467fc3b91 100644 --- a/os/utils.c +++ b/os/utils.c @@ -1131,56 +1131,6 @@ set_font_authorizations(char **authorizations, int *authlen, void *client) #endif /* TCPCONN */ } -void * -XNFalloc(unsigned long amount) -{ - void *ptr = malloc(amount); - - if (!ptr) - FatalError("Out of memory"); - return ptr; -} - -/* The original XNFcalloc was used with the xnfcalloc macro which multiplied - * the arguments at the call site without allowing calloc to check for overflow. - * XNFcallocarray was added to fix that without breaking ABI. - */ -void * -XNFcalloc(unsigned long amount) -{ - return XNFcallocarray(1, amount); -} - -void * -XNFcallocarray(size_t nmemb, size_t size) -{ - void *ret = calloc(nmemb, size); - - if (!ret) - FatalError("XNFcalloc: Out of memory"); - return ret; -} - -void * -XNFrealloc(void *ptr, unsigned long amount) -{ - void *ret = realloc(ptr, amount); - - if (!ret) - FatalError("XNFrealloc: Out of memory"); - return ret; -} - -void * -XNFreallocarray(void *ptr, size_t nmemb, size_t size) -{ - void *ret = reallocarray(ptr, nmemb, size); - - if (!ret) - FatalError("XNFreallocarray: Out of memory"); - return ret; -} - char * Xstrdup(const char *s) {