diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-10-23 08:22:44 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-10-25 08:38:45 +0200 |
commit | b3169c2a6a01cc0555181f61b5254dd2c1f1c310 (patch) | |
tree | f84d67c9d17b2625481513fa6dc85929fdb08442 /freebsd/lib | |
parent | Update rtems_waf (diff) | |
download | rtems-libbsd-b3169c2a6a01cc0555181f61b5254dd2c1f1c310.tar.bz2 |
Update to FreeBSD head 2018-10-23
Git mirror commit 59f44d20be3f99d181ca742e636d45fc39ec982b.
This commit updates OpenSSL to version 1.1.1. This required an update
of racoon which uses some internal stuff from OpenSSL and seems to be
mostly unmaintained, e.g. there is update in the FreeBSD ports to cope
with OpenSSL 1.1.1.
Update #3472.
Diffstat (limited to 'freebsd/lib')
-rw-r--r-- | freebsd/lib/libc/net/nsdispatch.c | 14 | ||||
-rw-r--r-- | freebsd/lib/libc/net/nslexer.l | 1 | ||||
-rw-r--r-- | freebsd/lib/libmemstat/memstat_malloc.c | 66 |
3 files changed, 53 insertions, 28 deletions
diff --git a/freebsd/lib/libc/net/nsdispatch.c b/freebsd/lib/libc/net/nsdispatch.c index 4b74407c..1c7612f1 100644 --- a/freebsd/lib/libc/net/nsdispatch.c +++ b/freebsd/lib/libc/net/nsdispatch.c @@ -505,9 +505,19 @@ nss_load_module(const char *source, nss_module_register_fn reg_fn) */ mod.handle = nss_builtin_handle; fn = reg_fn; - } else if (!is_dynamic()) + } else if (!is_dynamic()) { goto fin; - else { + } else if (strcmp(source, NSSRC_CACHE) == 0 || + strcmp(source, NSSRC_COMPAT) == 0 || + strcmp(source, NSSRC_DB) == 0 || + strcmp(source, NSSRC_DNS) == 0 || + strcmp(source, NSSRC_FILES) == 0 || + strcmp(source, NSSRC_NIS) == 0) { + /* + * Avoid calling dlopen(3) for built-in modules. + */ + goto fin; + } else { if (snprintf(buf, sizeof(buf), "nss_%s.so.%d", mod.name, NSS_MODULE_INTERFACE_VERSION) >= (int)sizeof(buf)) goto fin; diff --git a/freebsd/lib/libc/net/nslexer.l b/freebsd/lib/libc/net/nslexer.l index 17cfef8a..946aace3 100644 --- a/freebsd/lib/libc/net/nslexer.l +++ b/freebsd/lib/libc/net/nslexer.l @@ -50,6 +50,7 @@ static char *rcsid = %} +%option never-interactive %option noinput %option nounput %option yylineno diff --git a/freebsd/lib/libmemstat/memstat_malloc.c b/freebsd/lib/libmemstat/memstat_malloc.c index b252a2d4..3d7daaac 100644 --- a/freebsd/lib/libmemstat/memstat_malloc.c +++ b/freebsd/lib/libmemstat/memstat_malloc.c @@ -282,15 +282,28 @@ kread_symbol(kvm_t *kvm, int index, void *address, size_t size, return (0); } +static int +kread_zpcpu(kvm_t *kvm, u_long base, void *buf, size_t size, int cpu) +{ + ssize_t ret; + + ret = kvm_read_zpcpu(kvm, base, buf, size, cpu); + if (ret < 0) + return (MEMSTAT_ERROR_KVM); + if ((size_t)ret != size) + return (MEMSTAT_ERROR_KVM_SHORTREAD); + return (0); +} + int memstat_kvm_malloc(struct memory_type_list *list, void *kvm_handle) { struct memory_type *mtp; void *kmemstatistics; - int hint_dontsearch, j, mp_maxcpus, ret; + int hint_dontsearch, j, mp_maxcpus, mp_ncpus, ret; char name[MEMTYPE_MAXNAME]; - struct malloc_type_stats *mts, *mtsp; - struct malloc_type_internal *mtip; + struct malloc_type_stats mts; + struct malloc_type_internal mti, *mtip; struct malloc_type type, *typep; kvm_t *kvm; @@ -323,17 +336,12 @@ memstat_kvm_malloc(struct memory_type_list *list, void *kvm_handle) return (-1); } - mts = malloc(sizeof(struct malloc_type_stats) * mp_maxcpus); - if (mts == NULL) { - list->mtl_error = MEMSTAT_ERROR_NOMEMORY; - return (-1); - } + mp_ncpus = kvm_getncpus(kvm); for (typep = kmemstatistics; typep != NULL; typep = type.ks_next) { ret = kread(kvm, typep, &type, sizeof(type), 0); if (ret != 0) { _memstat_mtl_empty(list); - free(mts); list->mtl_error = ret; return (-1); } @@ -341,7 +349,6 @@ memstat_kvm_malloc(struct memory_type_list *list, void *kvm_handle) MEMTYPE_MAXNAME); if (ret != 0) { _memstat_mtl_empty(list); - free(mts); list->mtl_error = ret; return (-1); } @@ -351,11 +358,9 @@ memstat_kvm_malloc(struct memory_type_list *list, void *kvm_handle) * kernel's, we populate our own array. */ mtip = type.ks_handle; - ret = kread(kvm, mtip->mti_stats, mts, mp_maxcpus * - sizeof(struct malloc_type_stats), 0); + ret = kread(kvm, mtip, &mti, sizeof(mti), 0); if (ret != 0) { _memstat_mtl_empty(list); - free(mts); list->mtl_error = ret; return (-1); } @@ -369,7 +374,6 @@ memstat_kvm_malloc(struct memory_type_list *list, void *kvm_handle) name, mp_maxcpus); if (mtp == NULL) { _memstat_mtl_empty(list); - free(mts); list->mtl_error = MEMSTAT_ERROR_NOMEMORY; return (-1); } @@ -379,24 +383,34 @@ memstat_kvm_malloc(struct memory_type_list *list, void *kvm_handle) * be kept in sync. */ _memstat_mt_reset_stats(mtp, mp_maxcpus); - for (j = 0; j < mp_maxcpus; j++) { - mtsp = &mts[j]; - mtp->mt_memalloced += mtsp->mts_memalloced; - mtp->mt_memfreed += mtsp->mts_memfreed; - mtp->mt_numallocs += mtsp->mts_numallocs; - mtp->mt_numfrees += mtsp->mts_numfrees; - mtp->mt_sizemask |= mtsp->mts_size; + for (j = 0; j < mp_ncpus; j++) { + ret = kread_zpcpu(kvm, (u_long)mti.mti_stats, &mts, + sizeof(mts), j); + if (ret != 0) { + _memstat_mtl_empty(list); + list->mtl_error = ret; + return (-1); + } + mtp->mt_memalloced += mts.mts_memalloced; + mtp->mt_memfreed += mts.mts_memfreed; + mtp->mt_numallocs += mts.mts_numallocs; + mtp->mt_numfrees += mts.mts_numfrees; + mtp->mt_sizemask |= mts.mts_size; mtp->mt_percpu_alloc[j].mtp_memalloced = - mtsp->mts_memalloced; + mts.mts_memalloced; mtp->mt_percpu_alloc[j].mtp_memfreed = - mtsp->mts_memfreed; + mts.mts_memfreed; mtp->mt_percpu_alloc[j].mtp_numallocs = - mtsp->mts_numallocs; + mts.mts_numallocs; mtp->mt_percpu_alloc[j].mtp_numfrees = - mtsp->mts_numfrees; + mts.mts_numfrees; mtp->mt_percpu_alloc[j].mtp_sizemask = - mtsp->mts_size; + mts.mts_size; + } + for (; j < mp_maxcpus; j++) { + bzero(&mtp->mt_percpu_alloc[j], + sizeof(mtp->mt_percpu_alloc[0])); } mtp->mt_bytes = mtp->mt_memalloced - mtp->mt_memfreed; |