From 291331c74557786cf5ef5b62a647048131f1394c Mon Sep 17 00:00:00 2001 From: default Date: Sat, 23 Sep 2023 18:46:24 +0200 Subject: Backport from xs. --- xs.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'xs.h') diff --git a/xs.h b/xs.h index 40dd706..1fe210e 100644 --- a/xs.h +++ b/xs.h @@ -849,17 +849,18 @@ xs_str *xs_join(const xs_list *list, const char *sep) int sz; /* add the separator */ - if (c != 0) { + if (c != 0 && ssz) { s = xs_realloc(s, offset + ssz); memcpy(s + offset, sep, ssz); offset += ssz; } /* add the element */ - sz = strlen(v); - s = xs_realloc(s, offset + sz); - memcpy(s + offset, v, sz); - offset += sz; + if ((sz = strlen(v)) > 0) { + s = xs_realloc(s, offset + sz); + memcpy(s + offset, v, sz); + offset += sz; + } c++; } -- cgit v1.2.3