From: Bob Peterson <rpeterso(a)redhat.com>
[ Upstream commit 428f651cb80b227af47fc302e4931791f2fb4741 ]
Before this patch, function read_rindex_entry called compute_bitstructs
before it allocated a glock for the rgrp. But if compute_bitstructs found
a problem with the rgrp, it called gfs2_consist_rgrpd, and that called
gfs2_dump_glock for rgd->rd_gl which had not yet been assigned.
read_rindex_entry
compute_bitstructs
gfs2_consist_rgrpd
gfs2_dump_glock <---------rgd->rd_gl was not set.
This patch changes read_rindex_entry so it assigns an rgrp glock before
calling compute_bitstructs so gfs2_dump_glock does not reference an
unassigned pointer. If an error is discovered, the glock must also be
put, so a new goto and label were added.
Reported-by: syzbot+c6fd14145e2f62ca0784(a)syzkaller.appspotmail.com
Signed-off-by: Bob Peterson <rpeterso(a)redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba(a)redhat.com>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
fs/gfs2/rgrp.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index c3b00ba92ed2..e21f8e10d70b 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -922,15 +922,15 @@ static int read_rindex_entry(struct gfs2_inode *ip)
spin_lock_init(&rgd->rd_rsspin);
mutex_init(&rgd->rd_mutex);
- error = compute_bitstructs(rgd);
- if (error)
- goto fail;
-
error = gfs2_glock_get(sdp, rgd->rd_addr,
&gfs2_rgrp_glops, CREATE, &rgd->rd_gl);
if (error)
goto fail;
+ error = compute_bitstructs(rgd);
+ if (error)
+ goto fail_glock;
+
rgd->rd_rgl = (struct gfs2_rgrp_lvb *)rgd->rd_gl->gl_lksb.sb_lvbptr;
rgd->rd_flags &= ~(GFS2_RDF_UPTODATE | GFS2_RDF_PREFERRED);
if (rgd->rd_data > sdp->sd_max_rg_data)
@@ -944,6 +944,7 @@ static int read_rindex_entry(struct gfs2_inode *ip)
}
error = 0; /* someone else read in the rgrp; free it and ignore it */
+fail_glock:
gfs2_glock_put(rgd->rd_gl);
fail:
--
2.35.1
This is the start of the stable review cycle for the 4.9.315 release.
There are 19 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Wed, 18 May 2022 19:36:02 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.9.315-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.9.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.9.315-rc1
Yang Yingliang <yangyingliang(a)huawei.com>
tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()
Nicolas Dichtel <nicolas.dichtel(a)6wind.com>
ping: fix address binding wrt vrf
Sven Schwermer <sven.schwermer(a)disruptive-technologies.com>
USB: serial: option: add Fibocom MA510 modem
Sven Schwermer <sven.schwermer(a)disruptive-technologies.com>
USB: serial: option: add Fibocom L610 modem
Ethan Yang <etyang(a)sierrawireless.com>
USB: serial: qcserial: add support for Sierra Wireless EM7590
Scott Chen <scott(a)labau.com.tw>
USB: serial: pl2303: add device id for HP LM930 Display
Sergey Ryazanov <ryazanov.s.a(a)gmail.com>
usb: cdc-wdm: fix reading stuck on device close
Mark Brown <broonie(a)kernel.org>
ASoC: ops: Validate input values in snd_soc_put_volsw_range()
Mark Brown <broonie(a)kernel.org>
ASoC: max98090: Generate notifications on changes for custom control
Mark Brown <broonie(a)kernel.org>
ASoC: max98090: Reject invalid values in custom control put()
Ji-Ze Hong (Peter Hong) <hpeter(a)gmail.com>
hwmon: (f71882fg) Fix negative temperature
Taehee Yoo <ap420073(a)gmail.com>
net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe()
Alexandra Winter <wintera(a)linux.ibm.com>
s390/lcs: fix variable dereferenced before check
Alexandra Winter <wintera(a)linux.ibm.com>
s390/ctcm: fix potential memory leak
Alexandra Winter <wintera(a)linux.ibm.com>
s390/ctcm: fix variable dereferenced before check
Johannes Berg <johannes.berg(a)intel.com>
mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
Eric Dumazet <edumazet(a)google.com>
netlink: do not reset transport header in netlink_recvmsg()
Lokesh Dhoundiyal <lokesh.dhoundiyal(a)alliedtelesis.co.nz>
ipv4: drop dst in multicast routing path
Tariq Toukan <tariqt(a)nvidia.com>
net: Fix features skip in for_each_netdev_feature()
-------------
Diffstat:
Makefile | 4 ++--
drivers/hwmon/f71882fg.c | 5 +++--
drivers/net/ethernet/sfc/ef10.c | 5 +++++
drivers/net/wireless/mac80211_hwsim.c | 3 +++
drivers/s390/net/ctcm_mpc.c | 6 +-----
drivers/s390/net/ctcm_sysfs.c | 5 +++--
drivers/s390/net/lcs.c | 7 ++++---
drivers/tty/serial/digicolor-usart.c | 2 +-
drivers/usb/class/cdc-wdm.c | 1 +
drivers/usb/serial/option.c | 4 ++++
drivers/usb/serial/pl2303.c | 1 +
drivers/usb/serial/pl2303.h | 1 +
drivers/usb/serial/qcserial.c | 2 ++
include/linux/netdev_features.h | 4 ++--
net/ipv4/ping.c | 12 +++++++++++-
net/ipv4/route.c | 1 +
net/netlink/af_netlink.c | 1 -
sound/soc/codecs/max98090.c | 5 ++++-
sound/soc/soc-ops.c | 18 +++++++++++++++++-
19 files changed, 66 insertions(+), 21 deletions(-)
This is the start of the stable review cycle for the 4.14.280 release.
There are 25 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Wed, 18 May 2022 19:36:02 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.280-r…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.14.280-rc1
Yang Yingliang <yangyingliang(a)huawei.com>
tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()
Nicolas Dichtel <nicolas.dichtel(a)6wind.com>
ping: fix address binding wrt vrf
Zack Rusin <zackr(a)vmware.com>
drm/vmwgfx: Initialize drm_mode_fb_cmd2
Waiman Long <longman(a)redhat.com>
cgroup/cpuset: Remove cpus_allowed/mems_allowed setup in cpuset_init_smp()
Sven Schwermer <sven.schwermer(a)disruptive-technologies.com>
USB: serial: option: add Fibocom MA510 modem
Sven Schwermer <sven.schwermer(a)disruptive-technologies.com>
USB: serial: option: add Fibocom L610 modem
Ethan Yang <etyang(a)sierrawireless.com>
USB: serial: qcserial: add support for Sierra Wireless EM7590
Scott Chen <scott(a)labau.com.tw>
USB: serial: pl2303: add device id for HP LM930 Display
Sergey Ryazanov <ryazanov.s.a(a)gmail.com>
usb: cdc-wdm: fix reading stuck on device close
Eric Dumazet <edumazet(a)google.com>
tcp: resalt the secret every 10 seconds
Mark Brown <broonie(a)kernel.org>
ASoC: ops: Validate input values in snd_soc_put_volsw_range()
Mark Brown <broonie(a)kernel.org>
ASoC: max98090: Generate notifications on changes for custom control
Mark Brown <broonie(a)kernel.org>
ASoC: max98090: Reject invalid values in custom control put()
Ji-Ze Hong (Peter Hong) <hpeter(a)gmail.com>
hwmon: (f71882fg) Fix negative temperature
Taehee Yoo <ap420073(a)gmail.com>
net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe()
Guangguan Wang <guangguan.wang(a)linux.alibaba.com>
net/smc: non blocking recvmsg() return -EAGAIN when no data and signal_pending
Alexandra Winter <wintera(a)linux.ibm.com>
s390/lcs: fix variable dereferenced before check
Alexandra Winter <wintera(a)linux.ibm.com>
s390/ctcm: fix potential memory leak
Alexandra Winter <wintera(a)linux.ibm.com>
s390/ctcm: fix variable dereferenced before check
Randy Dunlap <rdunlap(a)infradead.org>
hwmon: (ltq-cputemp) restrict it to SOC_XWAY
Johannes Berg <johannes.berg(a)intel.com>
mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
Eric Dumazet <edumazet(a)google.com>
netlink: do not reset transport header in netlink_recvmsg()
Lokesh Dhoundiyal <lokesh.dhoundiyal(a)alliedtelesis.co.nz>
ipv4: drop dst in multicast routing path
Tariq Toukan <tariqt(a)nvidia.com>
net: Fix features skip in for_each_netdev_feature()
Sven Eckelmann <sven(a)narfation.org>
batman-adv: Don't skb_split skbuffs with frag_list
-------------
Diffstat:
Makefile | 4 ++--
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 2 +-
drivers/hwmon/Kconfig | 2 +-
drivers/hwmon/f71882fg.c | 5 +++--
drivers/net/ethernet/sfc/ef10.c | 5 +++++
drivers/net/wireless/mac80211_hwsim.c | 3 +++
drivers/s390/net/ctcm_mpc.c | 6 +-----
drivers/s390/net/ctcm_sysfs.c | 5 +++--
drivers/s390/net/lcs.c | 7 ++++---
drivers/tty/serial/digicolor-usart.c | 2 +-
drivers/usb/class/cdc-wdm.c | 1 +
drivers/usb/serial/option.c | 4 ++++
drivers/usb/serial/pl2303.c | 1 +
drivers/usb/serial/pl2303.h | 1 +
drivers/usb/serial/qcserial.c | 2 ++
include/linux/netdev_features.h | 4 ++--
kernel/cgroup/cpuset.c | 7 +++++--
net/batman-adv/fragmentation.c | 11 +++++++++++
net/core/secure_seq.c | 12 +++++++++---
net/ipv4/ping.c | 12 +++++++++++-
net/ipv4/route.c | 1 +
net/netlink/af_netlink.c | 1 -
net/smc/smc_rx.c | 4 ++--
sound/soc/codecs/max98090.c | 5 ++++-
sound/soc/soc-ops.c | 18 +++++++++++++++++-
25 files changed, 95 insertions(+), 30 deletions(-)