Skip to contentSkip to conversation

Patch "ASoC: Intel: Atom: add a missing star in a memcpy call" has been added to the 4.8-stable tree

PATCH [email protected] 1 participant 1 message Oct 20, 2016

Subsystems (4)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

ASoC: Intel: Atom: add a missing star in a memcpy call

to the 4.8-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:
asoc-intel-atom-add-a-missing-star-in-a-memcpy-call.patch
and it can be found in the queue-4.8 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 61ab0d403bbd9d5f6e000e3b5734049141b91f6f Mon Sep 17 00:00:00 2001

From: Nicolas Iooss <[email protected]>
Date: Sun, 28 Aug 2016 21:10:04 +0200
Subject: ASoC: Intel: Atom: add a missing star in a memcpy call

From: Nicolas Iooss <[email protected]>

commit 61ab0d403bbd9d5f6e000e3b5734049141b91f6f upstream.

In sst_prepare_and_post_msg(), when a response is received in "block", the following code gets executed:

    *data = kzalloc(block->size, GFP_KERNEL);
    memcpy(data, (void *) block->data, block->size);

The memcpy() call overwrites the content of the *data pointer instead of filling the newly-allocated memory (which pointer is hold by *data). Fix this by merging kzalloc+memcpy into a single kmemdup() call.

Thanks Joe Perches for suggesting using kmemdup()

Fixes 60dc8dbacb00 ("ASoC: Intel: sst: Add some helper functions")
---
 sound/soc/intel/atom/sst/sst_pvt.c |   14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)
sound/soc/intel/atom/sst/sst_pvt.c +6 -8
@@ -279,17 +279,15 @@ int sst_prepare_and_post_msg(struct inte
 
 	if (response) {
 		ret = sst_wait_timeout(sst, block);
-		if (ret < 0) {
+		if (ret < 0)
 			goto out;
-		} else if(block->data) {
-			if (!data)
-				goto out;
-			*data = kzalloc(block->size, GFP_KERNEL);
-			if (!(*data)) {
+
+		if (data && block->data) {
+			*data = kmemdup(block->data, block->size, GFP_KERNEL);
+			if (!*data) {
 				ret = -ENOMEM;
 				goto out;
-			} else
-				memcpy(data, (void *) block->data, block->size);
+			}
 		}
 	}
 out:

Patches currently in stable-queue which might be from [email protected] are

queue-4.8/asoc-intel-atom-add-a-missing-star-in-a-memcpy-call.patch queue-4.8/brcmfmac-fix-pmksa-bssid-usage.patch