From feb4c4c0048672e2dd533d922352644aab5a58ac Mon Sep 17 00:00:00 2001 From: Lann Martin Date: Mon, 6 Feb 2023 17:00:55 -0500 Subject: [PATCH] fix(tinygo): Regenerate canoncial_abi_* methods This pulls in fixes backported to wit-bindgen-backports that should resolve issues with Tinygo's handling of zero-sized allocations. Signed-off-by: Lann Martin --- sdk/go/config/spin-config.c | 6 +++++- sdk/go/http/spin-http.c | 6 +++++- sdk/go/http/wasi-outbound-http.c | 6 +++++- sdk/go/redis/outbound-redis.c | 6 +++++- sdk/go/redis/spin-redis.c | 6 +++++- 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/sdk/go/config/spin-config.c b/sdk/go/config/spin-config.c index c443cce017..b2d1ab02e3 100644 --- a/sdk/go/config/spin-config.c +++ b/sdk/go/config/spin-config.c @@ -5,9 +5,11 @@ __attribute__((weak, export_name("canonical_abi_realloc"))) void *canonical_abi_realloc( void *ptr, size_t orig_size, -size_t org_align, +size_t align, size_t new_size ) { + if (new_size == 0) + return (void*) align; void *ret = realloc(ptr, new_size); if (!ret) abort(); @@ -20,6 +22,8 @@ void *ptr, size_t size, size_t align ) { + if (size == 0) + return; free(ptr); } #include diff --git a/sdk/go/http/spin-http.c b/sdk/go/http/spin-http.c index 5f4a644b46..780a4adf36 100644 --- a/sdk/go/http/spin-http.c +++ b/sdk/go/http/spin-http.c @@ -5,9 +5,11 @@ __attribute__((weak, export_name("canonical_abi_realloc"))) void *canonical_abi_realloc( void *ptr, size_t orig_size, -size_t org_align, +size_t align, size_t new_size ) { + if (new_size == 0) + return (void*) align; void *ret = realloc(ptr, new_size); if (!ret) abort(); @@ -20,6 +22,8 @@ void *ptr, size_t size, size_t align ) { + if (size == 0) + return; free(ptr); } #include diff --git a/sdk/go/http/wasi-outbound-http.c b/sdk/go/http/wasi-outbound-http.c index d8d91963bb..f767585047 100644 --- a/sdk/go/http/wasi-outbound-http.c +++ b/sdk/go/http/wasi-outbound-http.c @@ -5,9 +5,11 @@ __attribute__((weak, export_name("canonical_abi_realloc"))) void *canonical_abi_realloc( void *ptr, size_t orig_size, -size_t org_align, +size_t align, size_t new_size ) { + if (new_size == 0) + return (void*) align; void *ret = realloc(ptr, new_size); if (!ret) abort(); @@ -20,6 +22,8 @@ void *ptr, size_t size, size_t align ) { + if (size == 0) + return; free(ptr); } #include diff --git a/sdk/go/redis/outbound-redis.c b/sdk/go/redis/outbound-redis.c index 5496750072..b9e3958aa5 100644 --- a/sdk/go/redis/outbound-redis.c +++ b/sdk/go/redis/outbound-redis.c @@ -5,9 +5,11 @@ __attribute__((weak, export_name("canonical_abi_realloc"))) void *canonical_abi_realloc( void *ptr, size_t orig_size, -size_t org_align, +size_t align, size_t new_size ) { + if (new_size == 0) + return (void*) align; void *ret = realloc(ptr, new_size); if (!ret) abort(); @@ -20,6 +22,8 @@ void *ptr, size_t size, size_t align ) { + if (size == 0) + return; free(ptr); } #include diff --git a/sdk/go/redis/spin-redis.c b/sdk/go/redis/spin-redis.c index 9e7876b435..b9e0ea8e4a 100644 --- a/sdk/go/redis/spin-redis.c +++ b/sdk/go/redis/spin-redis.c @@ -5,9 +5,11 @@ __attribute__((weak, export_name("canonical_abi_realloc"))) void *canonical_abi_realloc( void *ptr, size_t orig_size, -size_t org_align, +size_t align, size_t new_size ) { + if (new_size == 0) + return (void*) align; void *ret = realloc(ptr, new_size); if (!ret) abort(); @@ -20,6 +22,8 @@ void *ptr, size_t size, size_t align ) { + if (size == 0) + return; free(ptr); } void spin_redis_payload_free(spin_redis_payload_t *ptr) {