Patch "scsi: advansys: fix uninitialized data access" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
scsi: advansys: fix uninitialized data access
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
scsi-advansys-fix-uninitialized-data-access.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
44a5b977128c0ffff0654392b40f4c2ce72a619bMon Sep 17 00:00:00 2001
From: Arnd Bergmann <[email protected]>
Date: Thu, 23 Mar 2017 16:02:18 +0100
Subject: scsi: advansys: fix uninitialized data access
From: Arnd Bergmann <[email protected]>
commit 44a5b977128c0ffff0654392b40f4c2ce72a619b upstream.
gcc-7.0.1 now warns about a previously unnoticed access of uninitialized struct members:
drivers/scsi/advansys.c: In function 'AscMsgOutSDTR':drivers/scsi/advansys.c:3860:26: error: '*((void *)&sdtr_buf+5)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
((ushort)s_buffer[i + 1] << 8) | s_buffer[i]);
^drivers/scsi/advansys.c:3860:26: error: '*((void *)&sdtr_buf+7)' may be used uninitialized in this function [-Werror=maybe-uninitialized] drivers/scsi/advansys.c:3860:26: error: '*((void *)&sdtr_buf+5)' may be used uninitialized in this function [-Werror=maybe-uninitialized] drivers/scsi/advansys.c:3860:26: error: '*((void *)&sdtr_buf+7)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
The code has existed in this exact form at least since v2.6.12, and the warning seems correct. This uses named initializers to ensure we initialize all members of the structure.
--- drivers/scsi/advansys.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-)
drivers/scsi/advansys.c +10 -11
@@ -6291,18 +6291,17 @@ static uchar AscGetSynPeriodIndex(ASC_DVstatic uchar AscMsgOutSDTR (ASC_DVC_VAR *asc_dvc,uchar sdtr_period,uchar sdtr_offset) { -EXT_MSG sdtr_buf; -uchar sdtr_period_index; -PortAddr iop_base; - - iop_base = asc_dvc->iop_base; - sdtr_buf.msg_type =EXTENDED_MESSAGE ; - sdtr_buf.msg_len =MS_SDTR_LEN ; - sdtr_buf.msg_req =EXTENDED_SDTR ; - sdtr_buf.xfer_period = sdtr_period; +PortAddr iop_base = asc_dvc->iop_base; +uchar sdtr_period_index =AscGetSynPeriodIndex (asc_dvc, sdtr_period); +EXT_MSG sdtr_buf = { + .msg_type =EXTENDED_MESSAGE , + .msg_len =MS_SDTR_LEN , + .msg_req =EXTENDED_SDTR , + .xfer_period = sdtr_period, + .req_ack_offset = sdtr_offset, + }; sdtr_offset &=ASC_SYN_MAX_OFFSET ; - sdtr_buf.req_ack_offset = sdtr_offset; - sdtr_period_index =AscGetSynPeriodIndex (asc_dvc, sdtr_period); +if (sdtr_period_index <= asc_dvc->max_sdtr_index) { AscMemWordCopyPtrToLram(iop_base, ASCV_MSGOUT_BEG, (uchar *)&sdtr_buf,
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/kasan-rework-kconfig-settings.patch queue-4.9/tw5864-use-dev_warn-instead-of-warn-to-shut-up-warning.patch queue-4.9/perf-x86-shut-up-false-positive-wmaybe-uninitialized-warning.patch queue-4.9/go7007-add-media_camera_support-dependency.patch queue-4.9/scsi-advansys-fix-build-warning-for-pci-n.patch queue-4.9/video-fbdev-via-remove-possibly-unused-variables.patch queue-4.9/drm-exynos-mark-pm-functions-as-__maybe_unused.patch queue-4.9/binfmt_elf-compat-avoid-unused-function-warning.patch queue-4.9/idle-i7300-add-pci-dependency.patch queue-4.9/cw1200-fix-bogus-maybe-uninitialized-warning.patch queue-4.9/x86-build-silence-the-build-with-make-s.patch queue-4.9/gpio-xgene-mark-pm-functions-as-__maybe_unused.patch queue-4.9/kvm-add-x86_local_apic-dependency.patch queue-4.9/reiserfs-avoid-a-wmaybe-uninitialized-warning.patch queue-4.9/scsi-advansys-fix-uninitialized-data-access.patch queue-4.9/drm-i915-fix-intel_backlight_device_register-declaration.patch queue-4.9/spi-bcm-qspi-shut-up-warning-about-cfi-header-inclusion.patch queue-4.9/asoc-ux500-add-module_license-tag.patch queue-4.9/x86-microcode-amd-change-load_microcode_amd-s-param-to-bool-to-fix-preemptibility-bug.patch queue-4.9/video-fbdev-mmp-add-module_license.patch queue-4.9/usb-phy-msm-add-regulator-dependency.patch queue-4.9/arm64-dts-add-cooling-cells-to-cpu-nodes.patch queue-4.9/vmxnet3-prevent-building-with-64k-pages.patch queue-4.9/x86-platform-add-pci-dependency-for-punit_atom_debug.patch queue-4.9/alsa-hda-ca0132-fix-possible-null-pointer-use.patch queue-4.9/thermal-fix-intel_soc_dts_iosf_core-dependencies.patch queue-4.9/arm64-define-bug-instruction-without-config_bug.patch queue-4.9/arm64-sunxi-always-enable-reset-controller.patch queue-4.9/tc358743-fix-register-i2c_rd-wr-functions.patch queue-4.9/security-keys-big_key-requires-config_crypto.patch queue-4.9/drm-i915-hide-unused-intel_panel_set_backlight-function.patch queue-4.9/x86-fpu-math-emu-fix-possible-uninitialized-variable-use.patch queue-4.9/arm-8743-1-bl_switcher-add-module_license-tag.patch queue-4.9/em28xx-only-use-mt9v011-if-camera-support-is-enabled.patch queue-4.9/arm64-fix-warning-about-swapper_pg_dir-overflow.patch queue-4.9/shmem-avoid-maybe-uninitialized-warning.patch queue-4.9/input-tca8418_keypad-hide-gcc-4.9-wmaybe-uninitialized-warning.patch queue-4.9/drm-nouveau-hide-gcc-4.9-wmaybe-uninitialized.patch queue-4.9/x86-add-multiuser-dependency-for-kvm.patch queue-4.9/isdn-eicon-reduce-stack-size-of-sig_ind-function.patch