>From 44495f2541ae3af17a8a8d1bae98ada25f42864c Mon Sep 17 00:00:00 2001
From: Tobias Stoeckmann <[email protected]>
Date: Sat, 5 May 2012 19:42:42 +0200
Subject: [PATCH] Don't fail with assert() in string functions if both strings
 are NULL.

wstrconcat and wstrappend already support situations in which first OR
second string are NULL, but not if BOTH are NULL.  Fixed that.
---
 WINGs/string.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/WINGs/string.c b/WINGs/string.c
index d2e8b2a..8da008f 100644
--- a/WINGs/string.c
+++ b/WINGs/string.c
@@ -208,10 +208,12 @@ char *wstrconcat(char *str1, char *str2)
        char *str;
        size_t slen;
 
-       if (!str1)
+       if (!str1 && str2)
                return wstrdup(str2);
-       else if (!str2)
+       else if (str1 && !str2)
                return wstrdup(str1);
+       else if (!str1 && !str2)
+               return NULL;
 
        slen = strlen(str1) + strlen(str2) + 1;
        str = wmalloc(slen);
@@ -228,10 +230,10 @@ char *wstrappend(char *dst, char *src)
 {
        size_t slen;
 
-       if (!dst)
-               return wstrdup(src);
-       else if (!src || *src == 0)
+       if (!src || *src == 0)
                return dst;
+       else if (!dst)
+               return wstrdup(src);
 
        slen = strlen(dst) + strlen(src) + 1;
        dst = wrealloc(dst, slen);
-- 
1.7.6


-- 
To unsubscribe, send mail to [email protected].

Reply via email to