From 227bc3560762ae770564fcd8bad36b334696bb0b Mon Sep 17 00:00:00 2001 From: "@syxhe" Date: Mon, 6 Jan 2025 21:04:27 -0600 Subject: sdptiny --- src/encryption.c | 7 ++++++- src/shared.c | 26 -------------------------- src/shared.h | 6 ------ 3 files changed, 6 insertions(+), 33 deletions(-) diff --git a/src/encryption.c b/src/encryption.c index e92e4e7..c74c07e 100644 --- a/src/encryption.c +++ b/src/encryption.c @@ -1,3 +1,5 @@ +#define _GNU_SOURCE + #include "encryption.h" #include "shared.h" @@ -44,7 +46,10 @@ int maketmp(const char *dest, const char *format, ...) { int main() { char *test = NULL; - saprintf(&test, "We do a little trolling %d", 900); + // Turns out GNU did this for me, and I trust their code more than my own, so I'm using this now + if(asprintf(&test, "We do a little trolling %d", 900) < 0) + error(1, ENOMEM, "asprintf call failed"); + printf("%s\n", test); return 0; diff --git a/src/shared.c b/src/shared.c index 0c7c8e2..2beaeb8 100644 --- a/src/shared.c +++ b/src/shared.c @@ -34,29 +34,3 @@ void* xreallocarray(void *ptr, size_t nmemb, size_t size) { return mem; } - -int vsaprintf(char **str, const char *format, va_list ap) { - va_list ap2; - va_copy(ap2, ap); - - int length = vsnprintf(NULL, 0, format, ap2) + 1; // + 1 because sprintf does not count the null byte - char *temp = reallocarray(*str, length, sizeof(char)); - if(temp == NULL) - return -1; - - int ret = vsnprintf(temp, length, format, ap); - *str = temp; - - va_end(ap2); - return ret; -} - -int saprintf(char **str, const char *format, ...) { - va_list ap; - va_start(ap, format); - - int ret = vsaprintf(str, format, ap); - - va_end(ap); - return ret; -} \ No newline at end of file diff --git a/src/shared.h b/src/shared.h index fef19ca..b10462e 100644 --- a/src/shared.h +++ b/src/shared.h @@ -15,10 +15,4 @@ void* xcalloc(size_t nmemb, size_t size); // `reallocarray()` with error checking. Calls `error()` or `abort()` on error, depending on the value of `___VXGG___XCALLOC_EXIT_ON_ERROR___` void* xreallocarray(void *ptr, size_t nmemb, size_t size); -// `vsprintf()`, but reallocates enough room for the resulting string before writing to `str` -int vsaprintf(char **str, const char *format, va_list ap); - -// `sprintf()`, but reallocates enough room for the resulting string before writing to `str` -int saprintf(char **str, const char *format, ...); - #endif \ No newline at end of file -- cgit v1.2.3