diff options
author | wkoszek <wkoszek@FreeBSD.org> | 2007-05-01 10:47:09 +0000 |
---|---|---|
committer | wkoszek <wkoszek@FreeBSD.org> | 2007-05-01 10:47:09 +0000 |
commit | 0e767958a5567ff14e8778c60c52bdd44d912adb (patch) | |
tree | 54f3a1f1be423e24c618b1618c71e033d84744a4 /lib/libgeom/geom_getxml.c | |
parent | 76816978f201bd5240faa4c975107afb55693002 (diff) | |
download | FreeBSD-src-0e767958a5567ff14e8778c60c52bdd44d912adb.zip FreeBSD-src-0e767958a5567ff14e8778c60c52bdd44d912adb.tar.gz |
Second call of sysctl() is used to gather a proper size of a memory chunk
needed to hold the GEOM tree. At this point, pointer 'p' has an improper
value (as it was used previously), and we're getting EFAULT. Fix this
functionality by passing NULL instead of 'p'.
This fixes mdconfig(8) -l output with high number of md(4) devices.
Found by: kris
Reviewed by: phk
Diffstat (limited to 'lib/libgeom/geom_getxml.c')
-rw-r--r-- | lib/libgeom/geom_getxml.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libgeom/geom_getxml.c b/lib/libgeom/geom_getxml.c index fbc9cb8..68ff91b 100644 --- a/lib/libgeom/geom_getxml.c +++ b/lib/libgeom/geom_getxml.c @@ -53,7 +53,7 @@ geom_getxml() free(p); } l = 0; - i = sysctlbyname("kern.geom.confxml", p, &l, NULL, 0); + i = sysctlbyname("kern.geom.confxml", NULL, &l, NULL, 0); if (i != 0) return (NULL); p = malloc(l + 4096); |