diff options
author | Bart De Schuymer <bdschuym@pandora.be> | 2004-03-25 18:06:28 +0000 |
---|---|---|
committer | Bart De Schuymer <bdschuym@pandora.be> | 2004-03-25 18:06:28 +0000 |
commit | 7a1706b679a03cf597a80f5d2115a8222a63602d (patch) | |
tree | 156e98e825409249e1cf8af910dc3309dca02898 /userspace/arptables | |
parent | 2a72ba3f97f08e975c123e73fd99fcb665e3f683 (diff) | |
download | android_external_ebtables-7a1706b679a03cf597a80f5d2115a8222a63602d.tar.gz android_external_ebtables-7a1706b679a03cf597a80f5d2115a8222a63602d.tar.bz2 android_external_ebtables-7a1706b679a03cf597a80f5d2115a8222a63602d.zip |
Rémi Denis-Courmont: fix segfault with malformed MAC address
Diffstat (limited to 'userspace/arptables')
-rw-r--r-- | userspace/arptables/extensions/arpt_mangle.c | 4 |
1 files changed, 4 insertions, 0 deletions
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; |