diff options
-rw-r--r-- | src/expr/match.c | 4 | ||||
-rw-r--r-- | src/expr/target.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/expr/match.c b/src/expr/match.c index 9f2fa03..a65d3e5 100644 --- a/src/expr/match.c +++ b/src/expr/match.c @@ -42,8 +42,8 @@ nft_rule_expr_match_set(struct nft_rule_expr *e, uint16_t type, switch(type) { case NFT_EXPR_MT_NAME: - memcpy(mt->name, data, XT_EXTENSION_MAXNAMELEN); - mt->name[XT_EXTENSION_MAXNAMELEN-1] = '\0'; + snprintf(mt->name, sizeof(mt->name), "%.*s", data_len, + (const char *)data); break; case NFT_EXPR_MT_REV: mt->rev = *((uint32_t *)data); diff --git a/src/expr/target.c b/src/expr/target.c index 36e37de..ff0e56f 100644 --- a/src/expr/target.c +++ b/src/expr/target.c @@ -42,8 +42,8 @@ nft_rule_expr_target_set(struct nft_rule_expr *e, uint16_t type, switch(type) { case NFT_EXPR_TG_NAME: - memcpy(tg->name, data, XT_EXTENSION_MAXNAMELEN); - tg->name[XT_EXTENSION_MAXNAMELEN-1] = '\0'; + snprintf(tg->name, sizeof(tg->name), "%.*s", data_len, + (const char *) data); break; case NFT_EXPR_TG_REV: tg->rev = *((uint32_t *)data); |