aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/subr_hints.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2005-03-24 21:20:25 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2005-03-24 21:20:25 +0000
commit85c36f3d257ab50f1a4299345e72f11be20d1f62 (patch)
treea83c3bd29dd00f7112c9d1f0ca45840bf2647a35 /sys/kern/subr_hints.c
parent0440fc940af071349b06fb04774a5e3cbe63109a (diff)
downloadsrc-85c36f3d257ab50f1a4299345e72f11be20d1f62.tar.gz
src-85c36f3d257ab50f1a4299345e72f11be20d1f62.zip
Don't set ret_namelen and ret_resnamelen in res_find() unless both the
corresponding pointer to the buffer (ret_name and ret_resname) is non-NULL to avoid possible NULL pointer derefs. Reported by: Coverity via sam
Notes
Notes: svn path=/head/; revision=144077
Diffstat (limited to 'sys/kern/subr_hints.c')
-rw-r--r--sys/kern/subr_hints.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/subr_hints.c b/sys/kern/subr_hints.c
index 87d1e82070bb..d4f5cc86e4b2 100644
--- a/sys/kern/subr_hints.c
+++ b/sys/kern/subr_hints.c
@@ -174,7 +174,7 @@ res_find(int *line, int *startln,
if (ret_name)
*ret_name = s;
s = index(s, '.') + 1; /* start of unit */
- if (ret_namelen)
+ if (ret_namelen && ret_name)
*ret_namelen = s - *ret_name - 1; /* device length */
if (ret_unit)
*ret_unit = r_unit;
@@ -182,7 +182,7 @@ res_find(int *line, int *startln,
if (ret_resname)
*ret_resname = s;
s = index(s, '=') + 1; /* start of value */
- if (ret_resnamelen)
+ if (ret_resnamelen && ret_resname)
*ret_resnamelen = s - *ret_resname - 1; /* value len */
if (ret_value)
*ret_value = s;