diff --git a/Makefile b/Makefile index 539e4cd3c..e95fc2571 100644 --- a/Makefile +++ b/Makefile @@ -677,6 +677,7 @@ KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation) KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow) KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context) KBUILD_CFLAGS += $(call cc-disable-warning, attribute-alias) +KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member) ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,) diff --git a/drivers/char/rdbg.c b/drivers/char/rdbg.c index 0c623221b..400efb134 100644 --- a/drivers/char/rdbg.c +++ b/drivers/char/rdbg.c @@ -136,7 +136,7 @@ struct rdbg_device { int registers[32] = {0}; static struct rdbg_device g_rdbg_instance = { - { {0} }, + {}, NULL, 0, SMP2P_NUM_PROCS, Newer GCC doesn't trust that `dbg_buff` can hold `count` for the copy_from_user. Probably related to unsigned overflow? diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa.c b/drivers/platform/msm/ipa/ipa_v3/ipa.c index 9c0643d01..e2aa6d9bb 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa.c @@ -5970,6 +5970,9 @@ static ssize_t ipa3_write(struct file *file, const char __user *buf, char dbg_buff[32] = { 0 }; + if (sizeof(dbg_buff) < count) + return -EFAULT; + if (sizeof(dbg_buff) < count + 1) return -EFAULT; diff --git a/techpack/audio/asoc/codecs/wcd_cpe_core.c b/techpack/audio/asoc/codecs/wcd_cpe_core.c index 2e154e701..9fd3eb7ea 100644 --- a/techpack/audio/asoc/codecs/wcd_cpe_core.c +++ b/techpack/audio/asoc/codecs/wcd_cpe_core.c @@ -2257,6 +2257,7 @@ static int fill_cmi_header(struct cmi_hdr *hdr, return -EINVAL; } + memset(hdr, 0, sizeof(*hdr)); CMI_HDR_SET_SESSION(hdr, session_id); CMI_HDR_SET_SERVICE(hdr, service_id); if (version)