Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/kern Be more informative.
details: https://anonhg.NetBSD.org/src/rev/90eeda525f5a
branches: trunk
changeset: 1006921:90eeda525f5a
user: maxv <maxv%NetBSD.org@localhost>
date: Fri Jan 31 08:26:10 2020 +0000
description:
Be more informative.
diffstat:
sys/kern/subr_msan.c | 184 +++++++++++++++++++++++++++-----------------------
1 files changed, 100 insertions(+), 84 deletions(-)
diffs (truncated from 592 to 300 lines):
diff -r b5359ab7af1f -r 90eeda525f5a sys/kern/subr_msan.c
--- a/sys/kern/subr_msan.c Fri Jan 31 08:21:11 2020 +0000
+++ b/sys/kern/subr_msan.c Fri Jan 31 08:26:10 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_msan.c,v 1.6 2020/01/25 15:55:33 maxv Exp $ */
+/* $NetBSD: subr_msan.c,v 1.7 2020/01/31 08:26:10 maxv Exp $ */
/*
* Copyright (c) 2019-2020 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_msan.c,v 1.6 2020/01/25 15:55:33 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_msan.c,v 1.7 2020/01/31 08:26:10 maxv Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -163,7 +163,7 @@
orig = (msan_orig_t *)((uintptr_t)orig & ~0x3);
if (*orig == 0) {
- REPORT("MSan: Uninitialized Memory In %s() At Offset "
+ REPORT("MSan: Uninitialized Memory In %s At Offset "
"%zu\n", hook, off);
goto out;
}
@@ -173,13 +173,13 @@
if (kmsan_md_is_pc(ptr)) {
if (ksyms_getname(&mod, &sym, (vaddr_t)ptr, KSYMS_PROC)) {
- REPORT("MSan: Uninitialized %s Memory In %s() "
- "At Offset %zu, IP %p\n", typename, hook, off,
- (void *)ptr);
+ REPORT("MSan: Uninitialized %s Memory In %s "
+ "At Offset %zu/%zu, IP %p\n", typename, hook, off,
+ size, (void *)ptr);
} else {
- REPORT("MSan: Uninitialized %s Memory In %s() "
- "At Offset %zu, From %s()\n", typename, hook, off,
- sym);
+ REPORT("MSan: Uninitialized %s Memory In %s "
+ "At Offset %zu/%zu, From %s()\n", typename, hook,
+ off, size, sym);
}
} else {
var = (char *)ptr + 4;
@@ -187,7 +187,7 @@
var = buf;
fn = __builtin_strchr(buf, '@');
*fn++ = '\0';
- REPORT("MSan: Uninitialized %s Memory In %s() At Offset "
+ REPORT("MSan: Uninitialized %s Memory In %s At Offset "
"%zu, Variable '%s' From %s()\n", typename, hook, off,
var, fn);
}
@@ -513,7 +513,7 @@
struct mbuf *m = buf;
do {
- kmsan_shadow_check(mtod(m, void *), m->m_len, "if_transmit");
+ kmsan_shadow_check(mtod(m, void *), m->m_len, "if_transmit()");
} while ((m = m->m_next) != NULL);
}
@@ -522,7 +522,7 @@
{
buf_t *bp = buf;
- kmsan_shadow_check(bp->b_data, bp->b_bcount, "bwrite");
+ kmsan_shadow_check(bp->b_data, bp->b_bcount, "bwrite()");
}
void
@@ -646,13 +646,14 @@
const uint8_t *_b1 = b1, *_b2 = b2;
size_t i;
- kmsan_check_arg(sizeof(b1) + sizeof(b2) + sizeof(len), "memcmp");
+ kmsan_check_arg(sizeof(b1) + sizeof(b2) + sizeof(len),
+ "memcmp():args");
kmsan_init_ret(sizeof(int));
for (i = 0; i < len; i++) {
if (*_b1 != *_b2) {
- kmsan_shadow_check(b1, i + 1, "memcmp");
- kmsan_shadow_check(b2, i + 1, "memcmp");
+ kmsan_shadow_check(b1, i + 1, "memcmp():arg1");
+ kmsan_shadow_check(b2, i + 1, "memcmp():arg2");
return *_b1 - *_b2;
}
_b1++, _b2++;
@@ -690,7 +691,7 @@
char *_dst = dst;
size_t len = 0;
- kmsan_check_arg(sizeof(dst) + sizeof(src), "strcpy");
+ kmsan_check_arg(sizeof(dst) + sizeof(src), "strcpy():args");
while (1) {
len++;
@@ -700,7 +701,7 @@
src++, dst++;
}
- kmsan_shadow_check(_src, len, "strcpy");
+ kmsan_shadow_check(_src, len, "strcpy():arg2");
kmsan_shadow_fill(_dst, KMSAN_STATE_INITED, len);
kmsan_init_ret(sizeof(char *));
return _dst;
@@ -712,7 +713,7 @@
const char *_s1 = s1, *_s2 = s2;
size_t len = 0;
- kmsan_check_arg(sizeof(s1) + sizeof(s2), "strcmp");
+ kmsan_check_arg(sizeof(s1) + sizeof(s2), "strcmp():args");
kmsan_init_ret(sizeof(int));
while (1) {
@@ -720,15 +721,15 @@
if (*s1 != *s2)
break;
if (*s1 == '\0') {
- kmsan_shadow_check(_s1, len, "strcmp");
- kmsan_shadow_check(_s2, len, "strcmp");
+ kmsan_shadow_check(_s1, len, "strcmp():arg1");
+ kmsan_shadow_check(_s2, len, "strcmp():arg2");
return 0;
}
s1++, s2++;
}
- kmsan_shadow_check(_s1, len, "strcmp");
- kmsan_shadow_check(_s2, len, "strcmp");
+ kmsan_shadow_check(_s1, len, "strcmp():arg1");
+ kmsan_shadow_check(_s2, len, "strcmp():arg2");
return (*(const unsigned char *)s1 - *(const unsigned char *)s2);
}
@@ -738,7 +739,7 @@
{
const char *s;
- kmsan_check_arg(sizeof(str), "strlen");
+ kmsan_check_arg(sizeof(str), "strlen():args");
s = str;
while (1) {
@@ -747,7 +748,7 @@
s++;
}
- kmsan_shadow_check(str, (size_t)(s - str) + 1, "strlen");
+ kmsan_shadow_check(str, (size_t)(s - str) + 1, "strlen():arg1");
kmsan_init_ret(sizeof(size_t));
return (s - str);
}
@@ -758,12 +759,12 @@
size_t ldst, lsrc;
char *ret;
- kmsan_check_arg(sizeof(dst) + sizeof(src), "strcat");
+ kmsan_check_arg(sizeof(dst) + sizeof(src), "strcat():args");
ldst = __builtin_strlen(dst);
lsrc = __builtin_strlen(src);
- kmsan_shadow_check(dst, ldst + 1, "strcat");
- kmsan_shadow_check(src, lsrc + 1, "strcat");
+ kmsan_shadow_check(dst, ldst + 1, "strcat():arg1");
+ kmsan_shadow_check(src, lsrc + 1, "strcat():arg2");
ret = __builtin_strcat(dst, src);
kmsan_shadow_fill(dst, KMSAN_STATE_INITED, ldst + lsrc + 1);
@@ -776,8 +777,8 @@
{
char *ret;
- kmsan_check_arg(sizeof(s) + sizeof(c), "strchr");
- kmsan_shadow_check(s, __builtin_strlen(s), "strchr");
+ kmsan_check_arg(sizeof(s) + sizeof(c), "strchr():args");
+ kmsan_shadow_check(s, __builtin_strlen(s), "strchr():arg1");
ret = __builtin_strchr(s, c);
kmsan_init_ret(sizeof(char *));
@@ -789,8 +790,8 @@
{
char *ret;
- kmsan_check_arg(sizeof(s) + sizeof(c), "strrchr");
- kmsan_shadow_check(s, __builtin_strlen(s), "strrchr");
+ kmsan_check_arg(sizeof(s) + sizeof(c), "strrchr():args");
+ kmsan_shadow_check(s, __builtin_strlen(s), "strrchr():arg1");
ret = __builtin_strrchr(s, c);
kmsan_init_ret(sizeof(char *));
@@ -821,7 +822,8 @@
int
kmsan_kcopy(const void *src, void *dst, size_t len)
{
- kmsan_check_arg(sizeof(src) + sizeof(dst) + sizeof(len), "kcopy");
+ kmsan_check_arg(sizeof(src) + sizeof(dst) + sizeof(len),
+ "kcopy():args");
if (__predict_true(len != 0)) {
kmsan_meta_copy(dst, src, len);
}
@@ -836,7 +838,7 @@
int ret;
kmsan_check_arg(sizeof(kfaddr) + sizeof(kdaddr) +
- sizeof(len) + sizeof(done), "copystr");
+ sizeof(len) + sizeof(done), "copystr():args");
ret = copystr(kfaddr, kdaddr, len, &_done);
if (ret == 0)
kmsan_meta_copy(kdaddr, kfaddr, _done);
@@ -854,7 +856,8 @@
{
int ret;
- kmsan_check_arg(sizeof(uaddr) + sizeof(kaddr) + sizeof(len), "copyin");
+ kmsan_check_arg(sizeof(uaddr) + sizeof(kaddr) + sizeof(len),
+ "copyin():args");
ret = copyin(uaddr, kaddr, len);
if (ret == 0)
kmsan_shadow_fill(kaddr, KMSAN_STATE_INITED, len);
@@ -866,8 +869,9 @@
int
kmsan_copyout(const void *kaddr, void *uaddr, size_t len)
{
- kmsan_check_arg(sizeof(kaddr) + sizeof(uaddr) + sizeof(len), "copyout");
- kmsan_shadow_check(kaddr, len, "copyout");
+ kmsan_check_arg(sizeof(kaddr) + sizeof(uaddr) + sizeof(len),
+ "copyout():args");
+ kmsan_shadow_check(kaddr, len, "copyout():arg1");
kmsan_init_ret(sizeof(int));
return copyout(kaddr, uaddr, len);
}
@@ -879,7 +883,7 @@
int ret;
kmsan_check_arg(sizeof(uaddr) + sizeof(kaddr) +
- sizeof(len) + sizeof(done), "copyinstr");
+ sizeof(len) + sizeof(done), "copyinstr():args");
ret = copyinstr(uaddr, kaddr, len, &_done);
if (ret == 0)
kmsan_shadow_fill(kaddr, KMSAN_STATE_INITED, _done);
@@ -899,9 +903,9 @@
int ret;
kmsan_check_arg(sizeof(kaddr) + sizeof(uaddr) +
- sizeof(len) + sizeof(done), "copyoutstr");
+ sizeof(len) + sizeof(done), "copyoutstr():args");
ret = copyoutstr(kaddr, uaddr, len, &_done);
- kmsan_shadow_check(kaddr, _done, "copyoutstr");
+ kmsan_shadow_check(kaddr, _done, "copyoutstr():arg1");
if (done != NULL) {
*done = _done;
kmsan_shadow_fill(done, KMSAN_STATE_INITED, sizeof(size_t));
@@ -934,7 +938,7 @@
{
int _ret;
kmsan_check_arg(sizeof(uaddr) + sizeof(old) +
- sizeof(new) + sizeof(ret), "ucas_32");
+ sizeof(new) + sizeof(ret), "ucas_32():args");
_ret = _ucas_32(uaddr, old, new, ret);
if (_ret == 0)
kmsan_shadow_fill(ret, KMSAN_STATE_INITED, sizeof(*ret));
@@ -951,7 +955,7 @@
{
int _ret;
kmsan_check_arg(sizeof(uaddr) + sizeof(old) +
- sizeof(new) + sizeof(ret), "ucas_32_mp");
+ sizeof(new) + sizeof(ret), "ucas_32_mp():args");
_ret = _ucas_32_mp(uaddr, old, new, ret);
if (_ret == 0)
kmsan_shadow_fill(ret, KMSAN_STATE_INITED, sizeof(*ret));
@@ -969,7 +973,7 @@
{
int _ret;
kmsan_check_arg(sizeof(uaddr) + sizeof(old) +
- sizeof(new) + sizeof(ret), "ucas_64");
+ sizeof(new) + sizeof(ret), "ucas_64():args");
_ret = _ucas_64(uaddr, old, new, ret);
if (_ret == 0)
kmsan_shadow_fill(ret, KMSAN_STATE_INITED, sizeof(*ret));
@@ -986,7 +990,7 @@
{
int _ret;
kmsan_check_arg(sizeof(uaddr) + sizeof(old) +
- sizeof(new) + sizeof(ret), "ucas_64_mp");
+ sizeof(new) + sizeof(ret), "ucas_64_mp():args");
_ret = _ucas_64_mp(uaddr, old, new, ret);
if (_ret == 0)
kmsan_shadow_fill(ret, KMSAN_STATE_INITED, sizeof(*ret));
@@ -1002,7 +1006,7 @@
kmsan__ufetch_8(const uint8_t *uaddr, uint8_t *valp)
{
int _ret;
- kmsan_check_arg(sizeof(uaddr) + sizeof(valp), "ufetch_8");
+ kmsan_check_arg(sizeof(uaddr) + sizeof(valp), "ufetch_8():args");
_ret = _ufetch_8(uaddr, valp);
Home |
Main Index |
Thread Index |
Old Index