The updated patch is in the attachment.

---------- Původní e-mail ----------
Od: Stephen Hemminger <step...@networkplumber.org>
Komu: tomaspau...@email.cz
Datum: 31. 8. 2019 17:38:01
Předmět: Re: iproute2: tc: potential buffer overflow
On Sat, 31 Aug 2019 15:13:27 +0200 (CEST)
<tomaspau...@email.cz> wrote:

> Hi,
>
> there are two potentially dangerous calls of strcpy function in the program 
> "tc". In the attachment is a patch that fixes this issue.
>
> Tomas

This looks correct.

Please fix with strlcpy() instead; that is clearer.
Plus you can use XT_EXTENSION_MAX_NAMELEN here (optional).
commit 46be35fbded24c75786ce178c516d7fba991a90a
Author: Tomas Paukrt <tomaspau...@email.cz>
Date:   Sat Sep 7 15:34:30 2019 +0200

    tc: fix potential buffer overflow

diff --git a/tc/m_ipt.c b/tc/m_ipt.c
index cc95eab..e47ae6b 100644
--- a/tc/m_ipt.c
+++ b/tc/m_ipt.c
@@ -269,7 +269,8 @@ static int build_st(struct xtables_target *target, struct ipt_entry_target *t)
 		} else {
 			target->t = t;
 		}
-		strcpy(target->t->u.user.name, target->name);
+		strlcpy(target->t->u.user.name, target->name,
+			sizeof(target->t->u.user.name));
 		return 0;
 	}
 
diff --git a/tc/m_xt_old.c b/tc/m_xt_old.c
index 6a4509a..dd27adf 100644
--- a/tc/m_xt_old.c
+++ b/tc/m_xt_old.c
@@ -177,7 +177,8 @@ build_st(struct xtables_target *target, struct xt_entry_target *t)
 	if (t == NULL) {
 		target->t = fw_calloc(1, size);
 		target->t->u.target_size = size;
-		strcpy(target->t->u.user.name, target->name);
+		strlcpy(target->t->u.user.name, target->name,
+			sizeof(target->t->u.user.name));
 		set_revision(target->t->u.user.name, target->revision);
 
 		if (target->init != NULL)

Reply via email to