summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--runtime/map.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/runtime/map.c b/runtime/map.c
index de25d6f3..190ba91b 100644
--- a/runtime/map.c
+++ b/runtime/map.c
@@ -38,27 +38,16 @@ static int int64_eq_p (int64_t key1, int64_t key2)
static void str_copy(char *dest, char *src)
{
- int len = 0;
- if (src) {
- len = strlen(src);
- if (len > MAP_STRING_LENGTH - 1)
- len = MAP_STRING_LENGTH - 1;
- memcpy (dest, src, len);
- }
- dest[len] = 0;
+ if (src)
+ strlcpy(dest, src, MAP_STRING_LENGTH);
+ else
+ *dest = 0;
}
static void str_add(void *dest, char *val)
{
char *dst = (char *)dest;
- int len = strlen(val);
- int len1 = strlen(dst);
- int num = MAP_STRING_LENGTH - 1 - len1;
-
- if (len > num)
- len = num;
- memcpy (&dst[len1], val, len);
- dst[len + len1] = 0;
+ strlcat(dst, val, MAP_STRING_LENGTH);
}
static int str_eq_p (char *key1, char *key2)