Module Name: src Committed By: riz Date: Sun Aug 19 17:40:31 UTC 2012
Modified Files: src/lib/libnpf [netbsd-6]: npf.c src/sys/net/npf [netbsd-6]: npf_ctl.c npf_nat.c Log Message: Pull up following revision(s) (requested by rmind in ticket #511): lib/libnpf/npf.c: revision 1.12 sys/net/npf/npf_ctl.c: revision 1.17 sys/net/npf/npf_nat.c: revision 1.17 - {npf_mk_rproc,npf_nat_save}: fix the fetching of {rproc-ptr,id_ptr}. - npf_rproc_setlog: initialise variables to 0, as keys may not exist. Bugs found by mlelstv@ while testing on Amiga. To generate a diff of this commit: cvs rdiff -u -r1.7.2.4 -r1.7.2.5 src/lib/libnpf/npf.c cvs rdiff -u -r1.12.2.3 -r1.12.2.4 src/sys/net/npf/npf_ctl.c cvs rdiff -u -r1.10.2.5 -r1.10.2.6 src/sys/net/npf/npf_nat.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libnpf/npf.c diff -u src/lib/libnpf/npf.c:1.7.2.4 src/lib/libnpf/npf.c:1.7.2.5 --- src/lib/libnpf/npf.c:1.7.2.4 Mon Aug 13 17:49:51 2012 +++ src/lib/libnpf/npf.c Sun Aug 19 17:40:31 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: npf.c,v 1.7.2.4 2012/08/13 17:49:51 riz Exp $ */ +/* $NetBSD: npf.c,v 1.7.2.5 2012/08/19 17:40:31 riz Exp $ */ /*- * Copyright (c) 2010-2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: npf.c,v 1.7.2.4 2012/08/13 17:49:51 riz Exp $"); +__KERNEL_RCSID(0, "$NetBSD: npf.c,v 1.7.2.5 2012/08/19 17:40:31 riz Exp $"); #include <sys/types.h> #include <netinet/in_systm.h> @@ -456,7 +456,7 @@ _npf_rproc_setnorm(nl_rproc_t *rp, bool u_int maxmss) { prop_dictionary_t rpdict = rp->nrp_dict; - uint32_t fl; + uint32_t fl = 0; prop_dictionary_set_bool(rpdict, "randomize-id", rnd); prop_dictionary_set_bool(rpdict, "no-df", no_df); @@ -472,7 +472,7 @@ int _npf_rproc_setlog(nl_rproc_t *rp, u_int if_idx) { prop_dictionary_t rpdict = rp->nrp_dict; - uint32_t fl; + uint32_t fl = 0; prop_dictionary_set_uint32(rpdict, "log-interface", if_idx); Index: src/sys/net/npf/npf_ctl.c diff -u src/sys/net/npf/npf_ctl.c:1.12.2.3 src/sys/net/npf/npf_ctl.c:1.12.2.4 --- src/sys/net/npf/npf_ctl.c:1.12.2.3 Mon Jul 16 22:13:26 2012 +++ src/sys/net/npf/npf_ctl.c Sun Aug 19 17:40:31 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: npf_ctl.c,v 1.12.2.3 2012/07/16 22:13:26 riz Exp $ */ +/* $NetBSD: npf_ctl.c,v 1.12.2.4 2012/08/19 17:40:31 riz Exp $ */ /*- * Copyright (c) 2009-2012 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: npf_ctl.c,v 1.12.2.3 2012/07/16 22:13:26 riz Exp $"); +__KERNEL_RCSID(0, "$NetBSD: npf_ctl.c,v 1.12.2.4 2012/08/19 17:40:31 riz Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -164,6 +164,7 @@ npf_mk_rproc(prop_array_t rprocs, const prop_object_iterator_t it; prop_dictionary_t rpdict; npf_rproc_t *rp; + uint64_t rpval; it = prop_array_iterator(rprocs); while ((rpdict = prop_object_iterator_next(it)) != NULL) { @@ -178,10 +179,12 @@ npf_mk_rproc(prop_array_t rprocs, const return NULL; } CTASSERT(sizeof(uintptr_t) <= sizeof(uint64_t)); - if (!prop_dictionary_get_uint64(rpdict, "rproc-ptr", (uint64_t *)&rp)) { + if (!prop_dictionary_get_uint64(rpdict, "rproc-ptr", &rpval)) { rp = npf_rproc_create(rpdict); - prop_dictionary_set_uint64(rpdict, "rproc-ptr", - (uint64_t)(uintptr_t)rp); + rpval = (uint64_t)(uintptr_t)rp; + prop_dictionary_set_uint64(rpdict, "rproc-ptr", rpval); + } else { + rp = (npf_rproc_t *)(uintptr_t)rpval; } return rp; } Index: src/sys/net/npf/npf_nat.c diff -u src/sys/net/npf/npf_nat.c:1.10.2.5 src/sys/net/npf/npf_nat.c:1.10.2.6 --- src/sys/net/npf/npf_nat.c:1.10.2.5 Mon Aug 13 17:49:52 2012 +++ src/sys/net/npf/npf_nat.c Sun Aug 19 17:40:31 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: npf_nat.c,v 1.10.2.5 2012/08/13 17:49:52 riz Exp $ */ +/* $NetBSD: npf_nat.c,v 1.10.2.6 2012/08/19 17:40:31 riz Exp $ */ /*- * Copyright (c) 2010-2012 The NetBSD Foundation, Inc. @@ -76,7 +76,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: npf_nat.c,v 1.10.2.5 2012/08/13 17:49:52 riz Exp $"); +__KERNEL_RCSID(0, "$NetBSD: npf_nat.c,v 1.10.2.6 2012/08/19 17:40:31 riz Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -751,7 +751,7 @@ npf_nat_save(prop_dictionary_t sedict, p prop_object_iterator_t it; prop_dictionary_t npdict; prop_data_t nd, npd; - uintptr_t itnp; + uint64_t itnp; /* Set NAT entry data. */ nd = prop_data_create_data(nt, sizeof(npf_nat_t)); @@ -762,8 +762,8 @@ npf_nat_save(prop_dictionary_t sedict, p it = prop_array_iterator(natlist); while ((npdict = prop_object_iterator_next(it)) != NULL) { CTASSERT(sizeof(uintptr_t) <= sizeof(uint64_t)); - prop_dictionary_get_uint64(npdict, "id-ptr", (uint64_t *)&itnp); - if (itnp == (uintptr_t)np) { + prop_dictionary_get_uint64(npdict, "id-ptr", &itnp); + if ((uintptr_t)itnp == (uintptr_t)np) { break; } }