summaryrefslogtreecommitdiffstats
path: root/sys/compat/opensolaris/kern/opensolaris_kstat.c
diff options
context:
space:
mode:
authordwmalone <dwmalone@FreeBSD.org>2007-06-04 18:25:08 +0000
committerdwmalone <dwmalone@FreeBSD.org>2007-06-04 18:25:08 +0000
commit771efb08f5bfaf22da0498ae91647fdecb3cc6bb (patch)
treee4320a83dea3de4df605896db823e0af0f883364 /sys/compat/opensolaris/kern/opensolaris_kstat.c
parent360dc5b21c582598a9aaf5b3cd6f3832b847ef41 (diff)
downloadFreeBSD-src-771efb08f5bfaf22da0498ae91647fdecb3cc6bb.zip
FreeBSD-src-771efb08f5bfaf22da0498ae91647fdecb3cc6bb.tar.gz
Despite several examples in the kernel, the third argument of
sysctl_handle_int is not sizeof the int type you want to export. The type must always be an int or an unsigned int. Remove the instances where a sizeof(variable) is passed to stop people accidently cut and pasting these examples. In a few places this was sysctl_handle_int was being used on 64 bit types, which would truncate the value to be exported. In these cases use sysctl_handle_quad to export them and change the format to Q so that sysctl(1) can still print them.
Diffstat (limited to 'sys/compat/opensolaris/kern/opensolaris_kstat.c')
-rw-r--r--sys/compat/opensolaris/kern/opensolaris_kstat.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/compat/opensolaris/kern/opensolaris_kstat.c b/sys/compat/opensolaris/kern/opensolaris_kstat.c
index 673de14..6d0b7cf 100644
--- a/sys/compat/opensolaris/kern/opensolaris_kstat.c
+++ b/sys/compat/opensolaris/kern/opensolaris_kstat.c
@@ -102,7 +102,7 @@ kstat_sysctl(SYSCTL_HANDLER_ARGS)
uint64_t val;
val = ksent->value.ui64;
- return sysctl_handle_int(oidp, &val, sizeof(val), req);
+ return sysctl_handle_quad(oidp, &val, 0, req);
}
void
@@ -118,7 +118,7 @@ kstat_install(kstat_t *ksp)
SYSCTL_ADD_PROC(&ksp->ks_sysctl_ctx,
SYSCTL_CHILDREN(ksp->ks_sysctl_root), OID_AUTO, ksent->name,
CTLTYPE_QUAD | CTLFLAG_RD, ksent, sizeof(*ksent),
- kstat_sysctl, "IU", "");
+ kstat_sysctl, "QU", "");
}
}
OpenPOWER on IntegriCloud