git: 63b6a08ce246 - main - ng_parse: IP address parsing in netgraph eating too many characters
Lutz Donnerhacke
donner at FreeBSD.org
Tue May 18 20:39:43 UTC 2021
The branch main has been updated by donner:
URL: https://cgit.FreeBSD.org/src/commit/?id=63b6a08ce2467b8e230e7a4ecb3e1ddf1b48851c
commit 63b6a08ce2467b8e230e7a4ecb3e1ddf1b48851c
Author: Markus Stoff <markus at stoffdv.at>
AuthorDate: 2021-05-18 20:35:33 +0000
Commit: Lutz Donnerhacke <donner at FreeBSD.org>
CommitDate: 2021-05-18 20:36:28 +0000
ng_parse: IP address parsing in netgraph eating too many characters
Once the final component of the IP address has been parsed, the offset
on the input must not be advanced, as this would remove an unparsed
character from the input.
Submitted by: Markus Stoff
Reviewed by: donner
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D26489
---
sys/netgraph/ng_parse.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/sys/netgraph/ng_parse.c b/sys/netgraph/ng_parse.c
index 8050edbba562..c3c2126bdef5 100644
--- a/sys/netgraph/ng_parse.c
+++ b/sys/netgraph/ng_parse.c
@@ -960,9 +960,11 @@ ng_ipaddr_parse(const struct ng_parse_type *type,
if ((error = ng_int8_parse(&ng_parse_int8_type,
s, off, start, buf + i, buflen)) != 0)
return (error);
- if (i < 3 && s[*off] != '.')
- return (EINVAL);
- (*off)++;
+ if (i < 3) {
+ if (s[*off] != '.')
+ return (EINVAL);
+ (*off)++;
+ }
}
*buflen = 4;
return (0);
More information about the dev-commits-src-main
mailing list