diff options
author | Greg Kroah-Hartman <gregkh@google.com> | 2020-11-24 14:07:41 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2020-11-24 14:07:41 +0100 |
commit | b0dc0348f1c294d7406532594d740e40869986d4 (patch) | |
tree | b3057f9f3f28a9811bd165077ea7c034e50ed163 /net/netlabel/netlabel_unlabeled.c | |
parent | fda4c1842737a8a0ec2aa4a46830e89b18fcac9d (diff) | |
parent | 3e452b912038d210c30591337f37e679866ac43b (diff) |
Merge 4.4.246 into android-4.4-p
Changes in 4.4.246
ah6: fix error return code in ah6_input()
atm: nicstar: Unmap DMA on send error
net: b44: fix error return code in b44_init_one()
net: bridge: add missing counters to ndo_get_stats64 callback
netlabel: fix our progress tracking in netlbl_unlabel_staticlist()
netlabel: fix an uninitialized warning in netlbl_unlabel_staticlist()
net/mlx4_core: Fix init_hca fields offset
net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request
qlcnic: fix error return code in qlcnic_83xx_restart_hw()
sctp: change to hold/put transport for proto_unreach_timer
net: usb: qmi_wwan: Set DTR quirk for MR400
net: Have netpoll bring-up DSA management interface
pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq
arm64: psci: Avoid printing in cpu_psci_cpu_die()
MIPS: Fix BUILD_ROLLBACK_PROLOGUE for microMIPS
Input: adxl34x - clean up a data type in adxl34x_probe()
arm: dts: imx6qdl-udoo: fix rgmii phy-mode for ksz9031 phy
ARM: dts: imx50-evk: Fix the chip select 1 IOMUX
perf lock: Don't free "lock_seq_stat" if read_count isn't zero
can: dev: can_restart(): post buffer from the right context
can: peak_usb: fix potential integer overflow on shift of a int
can: m_can: m_can_handle_state_change(): fix state change
MIPS: Alchemy: Fix memleak in alchemy_clk_setup_cpu
regulator: ti-abb: Fix array out of bound read access on the first transition
libfs: fix error cast of negative value in simple_attr_write()
powerpc/uaccess-flush: fix corenet64_smp_defconfig build
ALSA: ctl: fix error path at adding user-defined element set
ALSA: mixart: Fix mutex deadlock
tty: serial: imx: keep console clocks always on
efivarfs: fix memory leak in efivarfs_create()
ext4: fix bogus warning in ext4_update_dx_flag()
xtensa: disable preemption around cache alias management calls
mac80211: minstrel: remove deferred sampling code
mac80211: minstrel: fix tx status processing corner case
mac80211: allow driver to prevent two stations w/ same address
mac80211: free sta in sta_info_insert_finish() on errors
s390/cpum_sf.c: fix file permission for cpum_sfb_size
x86/microcode/intel: Check patch signature before saving microcode for early loading
Linux 4.4.246
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I61a042e58de9b4af9a8e1880cf9ad829f57af60c
Diffstat (limited to 'net/netlabel/netlabel_unlabeled.c')
-rw-r--r-- | net/netlabel/netlabel_unlabeled.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c index 9f4ec16abfcf..5210f5546e3e 100644 --- a/net/netlabel/netlabel_unlabeled.c +++ b/net/netlabel/netlabel_unlabeled.c @@ -1185,12 +1185,13 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, struct netlbl_unlhsh_walk_arg cb_arg; u32 skip_bkt = cb->args[0]; u32 skip_chain = cb->args[1]; - u32 iter_bkt; - u32 iter_chain = 0, iter_addr4 = 0, iter_addr6 = 0; + u32 skip_addr4 = cb->args[2]; + u32 iter_bkt, iter_chain = 0, iter_addr4 = 0, iter_addr6 = 0; struct netlbl_unlhsh_iface *iface; struct list_head *iter_list; struct netlbl_af4list *addr4; #if IS_ENABLED(CONFIG_IPV6) + u32 skip_addr6 = cb->args[3]; struct netlbl_af6list *addr6; #endif @@ -1201,7 +1202,7 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, rcu_read_lock(); for (iter_bkt = skip_bkt; iter_bkt < rcu_dereference(netlbl_unlhsh)->size; - iter_bkt++, iter_chain = 0, iter_addr4 = 0, iter_addr6 = 0) { + iter_bkt++) { iter_list = &rcu_dereference(netlbl_unlhsh)->tbl[iter_bkt]; list_for_each_entry_rcu(iface, iter_list, list) { if (!iface->valid || @@ -1209,7 +1210,7 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, continue; netlbl_af4list_foreach_rcu(addr4, &iface->addr4_list) { - if (iter_addr4++ < cb->args[2]) + if (iter_addr4++ < skip_addr4) continue; if (netlbl_unlabel_staticlist_gen( NLBL_UNLABEL_C_STATICLIST, @@ -1222,10 +1223,12 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, goto unlabel_staticlist_return; } } + iter_addr4 = 0; + skip_addr4 = 0; #if IS_ENABLED(CONFIG_IPV6) netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) { - if (iter_addr6++ < cb->args[3]) + if (iter_addr6++ < skip_addr6) continue; if (netlbl_unlabel_staticlist_gen( NLBL_UNLABEL_C_STATICLIST, @@ -1238,8 +1241,12 @@ static int netlbl_unlabel_staticlist(struct sk_buff *skb, goto unlabel_staticlist_return; } } + iter_addr6 = 0; + skip_addr6 = 0; #endif /* IPv6 */ } + iter_chain = 0; + skip_chain = 0; } unlabel_staticlist_return: |