diff --git a/src/core/data.c b/src/core/data.c
index 557dfd6a5fb3011d276c22ccb31442edaaf59ff1..4840736896f55a03b4cf0716e18e3dec7cb9baec 100644 (file)
--- a/src/core/data.c
+++ b/src/core/data.c
else
return -1;
- if (s1 || s2) {
+ if (s1 && s2) {
new = malloc(len1 + len2 + 1);
if (! new)
return -1;
- }
- else
- new = NULL;
- if (len1)
- memcpy(new, s1, len1);
- if (len2)
- memcpy(new + len1, s2, len2);
- if (new)
+ if (len1)
+ memcpy(new, s1, len1);
+ if (len2)
+ memcpy(new + len1, s2, len2);
new[len1 + len2] = '\0';
+ }
+ else {
+ len1 = len2 = 0;
+ new = NULL;
+ }
res->type = d1->type;
if (res->type == SDB_TYPE_STRING) {