Pull up following revision(s) (requested by kamil in ticket #96):

usr.bin/sockstat/sockstat.c: revision 1.21
	usr.bin/sockstat/prog_ops.h: revision 1.2
	usr.bin/sockstat/sockstat_rumpops.c: revision 1.2
	usr.bin/sockstat/sockstat_hostops.c: revision 1.2
	usr.bin/sockstat/Makefile: revision 1.4

sockstat: Add indirection of symbols to remove clash with sanitizers

Add indirection and symbol renaming under MKSANITIZER for the linked in
version of sysctlgetmibinfo and sysctlnametomib.
This commit is contained in:
martin 2019-08-19 16:01:52 +00:00
parent f8fd4fae47
commit d8c45f73c9
5 changed files with 36 additions and 10 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.3 2011/01/28 18:52:49 pooka Exp $
# $NetBSD: Makefile,v 1.3.46.1 2019/08/19 16:01:52 martin Exp $
.include <bsd.own.mk>
@ -8,6 +8,10 @@ RUMPPRG= sockstat
CPPFLAGS+= -DRUMP_ACTION
RUMPSRCS+= sysctlgetmibinfo.c sysctlnametomib.c
SANITIZER_RENAME_CLASSES+= rump
SANITIZER_RENAME_FILES.rump+= ${PROG}_rumpops.c ${RUMPSRCS}
SANITIZER_RENAME_SYMBOL.rump+= sysctlgetmibinfo sysctlnametomib
.if (${USE_INET6} != "no")
CPPFLAGS+=-DINET6
.endif

View File

@ -1,4 +1,4 @@
/* $NetBSD: prog_ops.h,v 1.1 2011/01/28 18:52:49 pooka Exp $ */
/* $NetBSD: prog_ops.h,v 1.1.48.1 2019/08/19 16:01:52 martin Exp $ */
/*
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@ -32,19 +32,32 @@
#include <sys/types.h>
#ifndef CRUNCHOPS
struct sysctlnode;
struct prog_ops {
int (*op_init)(void);
int (*op_sysctl)(const int *, u_int, void *, size_t *,
const void *, size_t);
/* Indirection needed for sanitizers. */
int (*op_sysctlgetmibinfo)(const char *, int *, u_int *, char *,
size_t *, struct sysctlnode **, int);
int (*op_sysctlnametomib)(const char *, int *, size_t *);
};
extern const struct prog_ops prog_ops;
#define prog_init prog_ops.op_init
#define prog_sysctl prog_ops.op_sysctl
#define prog_sysctlgetmibinfo prog_ops.op_sysctlgetmibinfo
#define prog_sysctlnametomib prog_ops.op_sysctlnametomib
#else
#define prog_init ((int (*)(void))NULL)
#define prog_sysctl sysctl
#define prog_sysctlgetmibinfo sysctlgetmibinfo
#define prog_sysctlnametomib sysctlnametomib
#endif
#endif /* _PROG_OPS_H_ */

View File

@ -1,4 +1,4 @@
/* $NetBSD: sockstat.c,v 1.20 2019/02/03 03:19:30 mrg Exp $ */
/* $NetBSD: sockstat.c,v 1.20.2.1 2019/08/19 16:01:52 martin Exp $ */
/*
* Copyright (c) 2005 The NetBSD Foundation, Inc.
@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#ifndef lint
__RCSID("$NetBSD: sockstat.c,v 1.20 2019/02/03 03:19:30 mrg Exp $");
__RCSID("$NetBSD: sockstat.c,v 1.20.2.1 2019/08/19 16:01:52 martin Exp $");
#endif
#define _KMEMUSER
@ -297,7 +297,7 @@ get_sockets(const char *mib)
u_int namelen;
sz = CTL_MAXNAME;
rc = sysctlnametomib(mib, &name[0], &sz);
rc = prog_sysctlnametomib(mib, &name[0], &sz);
if (rc == -1) {
if (errno == ENOENT)
return;
@ -324,7 +324,7 @@ get_files(void)
u_int namelen;
sz = CTL_MAXNAME;
rc = sysctlnametomib("kern.file2", &name[0], &sz);
rc = prog_sysctlnametomib("kern.file2", &name[0], &sz);
if (rc == -1)
err(1, "sysctlnametomib");
namelen = sz;

View File

@ -1,4 +1,4 @@
/* $NetBSD: sockstat_hostops.c,v 1.1 2011/01/28 18:52:49 pooka Exp $ */
/* $NetBSD: sockstat_hostops.c,v 1.1.48.1 2019/08/19 16:01:52 martin Exp $ */
/*
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@ -28,7 +28,7 @@
#include <sys/cdefs.h>
#ifndef lint
__RCSID("$NetBSD: sockstat_hostops.c,v 1.1 2011/01/28 18:52:49 pooka Exp $");
__RCSID("$NetBSD: sockstat_hostops.c,v 1.1.48.1 2019/08/19 16:01:52 martin Exp $");
#endif /* !lint */
#include <sys/types.h>
@ -38,4 +38,8 @@ __RCSID("$NetBSD: sockstat_hostops.c,v 1.1 2011/01/28 18:52:49 pooka Exp $");
const struct prog_ops prog_ops = {
.op_sysctl = sysctl,
.op_sysctlgetmibinfo = sysctlgetmibinfo,
.op_sysctlnametomib = sysctlnametomib,
};

View File

@ -1,4 +1,4 @@
/* $NetBSD: sockstat_rumpops.c,v 1.1 2011/01/28 18:52:49 pooka Exp $ */
/* $NetBSD: sockstat_rumpops.c,v 1.1.48.1 2019/08/19 16:01:52 martin Exp $ */
/*
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@ -28,10 +28,11 @@
#include <sys/cdefs.h>
#ifndef lint
__RCSID("$NetBSD: sockstat_rumpops.c,v 1.1 2011/01/28 18:52:49 pooka Exp $");
__RCSID("$NetBSD: sockstat_rumpops.c,v 1.1.48.1 2019/08/19 16:01:52 martin Exp $");
#endif /* !lint */
#include <sys/types.h>
#include <sys/sysctl.h>
#include <rump/rumpclient.h>
#include <rump/rump_syscalls.h>
@ -42,4 +43,8 @@ const struct prog_ops prog_ops = {
.op_init = rumpclient_init,
.op_sysctl = rump_sys___sysctl,
.op_sysctlgetmibinfo = sysctlgetmibinfo,
.op_sysctlnametomib = sysctlnametomib,
};