aboutsummaryrefslogtreecommitdiff
path: root/sys/netgraph/ng_parse.c
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2006-01-18 16:09:00 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2006-01-18 16:09:00 +0000
commit4006cd2b3fcbbd3ae72d2ccda07b4066df093847 (patch)
treed8de5e97fca33205245de090978c82d9fd31a9a7 /sys/netgraph/ng_parse.c
parent39550088cf76fc5597fd63847d53e25c706e5ac9 (diff)
Notes
Diffstat (limited to 'sys/netgraph/ng_parse.c')
-rw-r--r--sys/netgraph/ng_parse.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/netgraph/ng_parse.c b/sys/netgraph/ng_parse.c
index 5dd7568ed7b6c..2e9a365486833 100644
--- a/sys/netgraph/ng_parse.c
+++ b/sys/netgraph/ng_parse.c
@@ -800,10 +800,12 @@ ng_fixedstring_parse(const struct ng_parse_type *type,
int len;
int slen;
- if (slen + 1 > fi->bufSize)
- return (E2BIG);
if ((sval = ng_get_string_token(s, off, &len, &slen)) == NULL)
return (EINVAL);
+ if (slen + 1 > fi->bufSize) {
+ FREE(sval, M_NETGRAPH_PARSE);
+ return (E2BIG);
+ }
*off += len;
bcopy(sval, buf, slen);
FREE(sval, M_NETGRAPH_PARSE);
@@ -901,10 +903,12 @@ ng_sizedstring_parse(const struct ng_parse_type *type,
int len;
int slen;
- if (slen > USHRT_MAX)
- return (EINVAL);
if ((sval = ng_get_string_token(s, off, &len, &slen)) == NULL)
return (EINVAL);
+ if (slen > USHRT_MAX) {
+ FREE(sval, M_NETGRAPH_PARSE);
+ return (EINVAL);
+ }
*off += len;
*((u_int16_t *)buf) = (u_int16_t)slen;
bcopy(sval, buf + 2, slen);