From 9b6047ab3e95c4c3a655c262245ef2948ef2f678 Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Mon, 9 Jun 2025 09:59:17 +0200 Subject: [PATCH] datasets: factorize set operation --- src/datasets-ipv4.c | 4 +++- src/datasets-ipv6.c | 4 +++- src/datasets-md5.c | 4 +++- src/datasets-sha256.c | 4 +++- src/datasets-string.c | 10 +++------- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/datasets-ipv4.c b/src/datasets-ipv4.c index 1f82faaa71..e9a5812ecd 100644 --- a/src/datasets-ipv4.c +++ b/src/datasets-ipv4.c @@ -40,9 +40,11 @@ int IPv4Set(void *dst, void *src) int IPv4JsonSet(void *dst, void *src) { + if (IPv4Set(dst, src) < 0) + return -1; + IPv4Type *src_s = src; IPv4Type *dst_s = dst; - memcpy(dst_s->ipv4, src_s->ipv4, sizeof(dst_s->ipv4)); if (DatajsonCopyJson(&dst_s->json, &src_s->json) < 0) return -1; diff --git a/src/datasets-ipv6.c b/src/datasets-ipv6.c index 30fbddc0b7..c310a9552e 100644 --- a/src/datasets-ipv6.c +++ b/src/datasets-ipv6.c @@ -41,9 +41,11 @@ int IPv6Set(void *dst, void *src) int IPv6JsonSet(void *dst, void *src) { + if (IPv6Set(dst, src) < 0) + return -1; + IPv6Type *src_s = src; IPv6Type *dst_s = dst; - memcpy(dst_s->ipv6, src_s->ipv6, sizeof(dst_s->ipv6)); if (DatajsonCopyJson(&dst_s->json, &src_s->json) < 0) return -1; diff --git a/src/datasets-md5.c b/src/datasets-md5.c index b743b1169b..539bc404df 100644 --- a/src/datasets-md5.c +++ b/src/datasets-md5.c @@ -42,9 +42,11 @@ int Md5StrSet(void *dst, void *src) int Md5StrJsonSet(void *dst, void *src) { + if (Md5StrSet(dst, src) < 0) + return -1; + Md5Type *src_s = src; Md5Type *dst_s = dst; - memcpy(dst_s->md5, src_s->md5, sizeof(dst_s->md5)); if (DatajsonCopyJson(&dst_s->json, &src_s->json) < 0) return -1; diff --git a/src/datasets-sha256.c b/src/datasets-sha256.c index e1f90107cc..ed7e845112 100644 --- a/src/datasets-sha256.c +++ b/src/datasets-sha256.c @@ -40,9 +40,11 @@ int Sha256StrSet(void *dst, void *src) int Sha256StrJsonSet(void *dst, void *src) { + if (Sha256StrSet(dst, src) < 0) + return -1; + Sha256Type *src_s = src; Sha256Type *dst_s = dst; - memcpy(dst_s->sha256, src_s->sha256, sizeof(dst_s->sha256)); if (DatajsonCopyJson(&dst_s->json, &src_s->json) < 0) return -1; diff --git a/src/datasets-string.c b/src/datasets-string.c index 6eb1dd5468..d237406f2b 100644 --- a/src/datasets-string.c +++ b/src/datasets-string.c @@ -75,21 +75,17 @@ int StringSet(void *dst, void *src) int StringJsonSet(void *dst, void *src) { + if (StringSet(dst, src) < 0) + return -1; + StringType *src_s = src; StringType *dst_s = dst; - SCLogDebug("dst %p src %p, src_s->ptr %p src_s->len %u", dst, src, src_s->ptr, src_s->len); - - dst_s->len = src_s->len; - dst_s->ptr = SCMalloc(dst_s->len); - BUG_ON(dst_s->ptr == NULL); - memcpy(dst_s->ptr, src_s->ptr, dst_s->len); if (DatajsonCopyJson(&dst_s->json, &src_s->json) < 0) { SCFree(dst_s->ptr); return -1; } - SCLogDebug("dst %p src %p, dst_s->ptr %p dst_s->len %u", dst, src, dst_s->ptr, dst_s->len); return 0; }