Module Name: src
Committed By: joerg
Date: Wed May 16 20:21:39 UTC 2018
Modified Files:
src/lib/libc/gen: sysctl.c
src/sys/sys: sysctl.h
Log Message:
Avoid complicated arithmetic involving NULL.
To generate a diff of this commit:
cvs rdiff -u -r1.36 -r1.37 src/lib/libc/gen/sysctl.c
cvs rdiff -u -r1.225 -r1.226 src/sys/sys/sysctl.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/gen/sysctl.c
diff -u src/lib/libc/gen/sysctl.c:1.36 src/lib/libc/gen/sysctl.c:1.37
--- src/lib/libc/gen/sysctl.c:1.36 Tue Jan 10 17:46:47 2017
+++ src/lib/libc/gen/sysctl.c Wed May 16 20:21:39 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: sysctl.c,v 1.36 2017/01/10 17:46:47 christos Exp $ */
+/* $NetBSD: sysctl.c,v 1.37 2018/05/16 20:21:39 joerg Exp $ */
/*-
* Copyright (c) 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)sysctl.c 8.2 (Berkeley) 1/4/94";
#else
-__RCSID("$NetBSD: sysctl.c,v 1.36 2017/01/10 17:46:47 christos Exp $");
+__RCSID("$NetBSD: sysctl.c,v 1.37 2018/05/16 20:21:39 joerg Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -309,7 +309,7 @@ user_sysctl(const int *name, unsigned in
_DIAGASSERT(__type_fit(uint32_t, dlen));
d1->descr_len = (uint32_t)dlen;
}
- d = (size_t)__sysc_desc_adv(NULL, d1->descr_len);
+ d = (size_t)__sysc_desc_len(d1->descr_len);
if (d2 != NULL)
memcpy(d2, d1, d);
sz += d;
Index: src/sys/sys/sysctl.h
diff -u src/sys/sys/sysctl.h:1.225 src/sys/sys/sysctl.h:1.226
--- src/sys/sys/sysctl.h:1.225 Fri Sep 8 10:53:55 2017
+++ src/sys/sys/sysctl.h Wed May 16 20:21:39 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: sysctl.h,v 1.225 2017/09/08 10:53:55 wiz Exp $ */
+/* $NetBSD: sysctl.h,v 1.226 2018/05/16 20:21:39 joerg Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -1472,10 +1472,11 @@ struct sysctldesc {
};
#define __sysc_desc_roundup(x) ((((x) - 1) | (sizeof(int32_t) - 1)) + 1)
+#define __sysc_desc_len(l) (offsetof(struct sysctldesc, descr_str) +\
+ __sysc_desc_roundup(l))
#define __sysc_desc_adv(d, l) \
(/*XXXUNCONST ptr cast*/(struct sysctldesc *) \
- __UNCONST(((const char*)(d)) + offsetof(struct sysctldesc, descr_str) +\
- __sysc_desc_roundup(l)))
+ __UNCONST(((const char*)(d)) + __sysc_desc_len(l)))
#define NEXT_DESCR(d) __sysc_desc_adv((d), (d)->descr_len)
static __inline const struct sysctlnode *