From 7a1706b679a03cf597a80f5d2115a8222a63602d Mon Sep 17 00:00:00 2001 From: Bart De Schuymer Date: Thu, 25 Mar 2004 18:06:28 +0000 Subject: =?UTF-8?q?R=E9mi=20Denis-Courmont:=20fix=20segfault=20with=20malf?= =?UTF-8?q?ormed=20MAC=20address?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- userspace/arptables/extensions/arpt_mangle.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'userspace/arptables') diff --git a/userspace/arptables/extensions/arpt_mangle.c b/userspace/arptables/extensions/arpt_mangle.c index fa59b13..3bf44e4 100644 --- a/userspace/arptables/extensions/arpt_mangle.c +++ b/userspace/arptables/extensions/arpt_mangle.c @@ -105,6 +105,8 @@ parse(int c, char **argv, int invert, unsigned int *flags, exit_error(PARAMETER_PROBLEM, "only --h-length 6 " "supported"); macaddr = ether_aton(argv[optind-1]); + if (macaddr == NULL) + exit_error(PARAMETER_PROBLEM, "invalid source MAC"); memcpy(mangle->src_devaddr, macaddr, e->arp.arhln); mangle->flags |= ARPT_MANGLE_SDEV; break; @@ -118,6 +120,8 @@ parse(int c, char **argv, int invert, unsigned int *flags, exit_error(PARAMETER_PROBLEM, "only --h-length 6 " "supported"); macaddr = ether_aton(argv[optind-1]); + if (macaddr == NULL) + exit_error(PARAMETER_PROBLEM, "invalid target MAC"); memcpy(mangle->tgt_devaddr, macaddr, e->arp.arhln); mangle->flags |= ARPT_MANGLE_TDEV; break; -- cgit v1.2.3