From patchwork Thu Jun 25 11:03:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Piotr Maziarz X-Patchwork-Id: 11624977 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1E9F460D for ; Thu, 25 Jun 2020 12:06:37 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 45E482076E for ; Thu, 25 Jun 2020 12:06:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="pRMX9dkc" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 45E482076E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 5CD161893; Thu, 25 Jun 2020 14:05:47 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 5CD161893 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1593086794; bh=NLmXwO3fl6JiDSplUQObqbKRReUnA2vhb3UubkhmDbk=; h=From:To:Subject:Date:Cc:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=pRMX9dkcZEz8y1UGu9tXWwdm8JSQfgHo5Bssc+ctYkZPcQb1atoKfg933o93KkkCq Ex2MkFmRUjmXc8CSTY/S/REwP0V16SY3sR2OljGHqHckxqStnelpSHiZLqdLd4xuSL 2kD07HS5o57e0GMTU/4mCtOA4yMmvniear8EbtyU= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id CB8B9F80158; Thu, 25 Jun 2020 14:05:45 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa1.perex.cz (Postfix, from userid 50401) id 62EABF80277; Thu, 25 Jun 2020 14:05:44 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on alsa1.perex.cz X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_NONE, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id C4B33F80158 for ; Thu, 25 Jun 2020 14:05:37 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz C4B33F80158 IronPort-SDR: MC8iEsh0ZUQdVxBKwZQLtvMorHAqM6m+O21Tr+gDvbR4ysiRsHlumJ0yyS3I9DN7cRY8Ln933O C4xR0TfoLfqA== X-IronPort-AV: E=McAfee;i="6000,8403,9662"; a="206389918" X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="206389918" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jun 2020 05:05:34 -0700 IronPort-SDR: b2dJ3CrglRbVnPhLMpsJhyqJDAhBnh0VUZ1SA9TK7BhCEf609jGyLpdfaQNiZQHrIv4y2U8xHn yXQC3HrC1vcA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="354438926" Received: from test-hp-compaq-8100-elite-cmt-pc.igk.intel.com ([10.237.149.93]) by orsmga001.jf.intel.com with ESMTP; 25 Jun 2020 05:05:33 -0700 From: Piotr Maziarz To: alsa-devel@alsa-project.org Subject: [PATCH alsa-lib 1/8] topology: decode: fix channel map memory allocation Date: Thu, 25 Jun 2020 13:03:39 +0200 Message-Id: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> X-Mailer: git-send-email 2.7.4 Cc: cezary.rojewski@intel.com, amadeuszx.slawinski@intel.com X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Without proper memory allocation behaviour was undefined. Signed-off-by: Piotr Maziarz --- src/topology/ctl.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/topology/ctl.c b/src/topology/ctl.c index 90241b6..c8c7e94 100644 --- a/src/topology/ctl.c +++ b/src/topology/ctl.c @@ -1330,7 +1330,6 @@ int tplg_decode_control_enum1(snd_tplg_t *tplg, void *bin, size_t size) { struct snd_soc_tplg_enum_control *ec = bin; - struct snd_tplg_channel_map_template cmt; int i; if (size < sizeof(*ec)) { @@ -1375,11 +1374,11 @@ int tplg_decode_control_enum1(snd_tplg_t *tplg, } } - et->map = &cmt; - memset(&cmt, 0, sizeof(cmt)); - cmt.num_channels = ec->num_channels; - for (i = 0; i < cmt.num_channels; i++) { - struct snd_tplg_channel_elem *channel = &cmt.channel[i]; + et->map = tplg_calloc(heap, sizeof(struct snd_tplg_channel_map_template)); + et->map->num_channels = ec->num_channels; + for (i = 0; i < et->map->num_channels; i++) { + struct snd_tplg_channel_elem *channel = &et->map->channel[i]; + tplg_log(tplg, 'D', pos + ((void *)&ec->channel[i] - (void *)ec), "enum: channel size %d", ec->channel[i].size); channel->reg = ec->channel[i].reg; From patchwork Thu Jun 25 11:03:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Piotr Maziarz X-Patchwork-Id: 11624979 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3E85F92A for ; Thu, 25 Jun 2020 12:07:29 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C73962076E for ; Thu, 25 Jun 2020 12:07:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="qlmnZLni" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C73962076E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 2E44618D4; Thu, 25 Jun 2020 14:06:40 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 2E44618D4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1593086847; bh=jNNQIkjsWeT6Q7vTvFioTvNiWWiA8SCtlIzStg5aMmM=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=qlmnZLniRIxAh+5DGM5t02jUuBkAyrlL7qwsBtW5ERFWcE6MghRz/2F7hpU2IutQd +hWDg5kizScWeQJIYi6zixCJ0I4PernBrEI8tjwZfeXtkOryLLMamCK/MbH/JuPRm9 ztHjjf4E3JXhM7ot5Y1sZLq+wjImJFYn+GIfAkzs= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 63295F802A2; Thu, 25 Jun 2020 14:05:50 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa1.perex.cz (Postfix, from userid 50401) id 261C6F802A1; Thu, 25 Jun 2020 14:05:46 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on alsa1.perex.cz X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_NONE, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 5020AF800B2 for ; Thu, 25 Jun 2020 14:05:38 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 5020AF800B2 IronPort-SDR: YxgNVa9thtfeT389LgaUZVq/fp+GPntbGFiEnfQkD8vwJg/N5q1QPrsckpa07I7P6Pp028afuL sjwHkp/tokBg== X-IronPort-AV: E=McAfee;i="6000,8403,9662"; a="206389925" X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="206389925" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jun 2020 05:05:36 -0700 IronPort-SDR: PC1m9Bj2wMVOLZpgWS5HOw1f93tr6RbYtJo8zDSTEQHNb6AHU8Z+yJ48mV2F/bFYvFeRDxB1gy hT+pX7tNkjMQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="354438935" Received: from test-hp-compaq-8100-elite-cmt-pc.igk.intel.com ([10.237.149.93]) by orsmga001.jf.intel.com with ESMTP; 25 Jun 2020 05:05:34 -0700 From: Piotr Maziarz To: alsa-devel@alsa-project.org Subject: [PATCH alsa-lib 2/8] topology: decode: Fix adding texts field to enum control Date: Thu, 25 Jun 2020 13:03:40 +0200 Message-Id: <1593083026-7501-2-git-send-email-piotrx.maziarz@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> References: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> Cc: cezary.rojewski@intel.com, amadeuszx.slawinski@intel.com X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Iterating over texts in tplg_decode_control_enum1 was an infinite loop, it needed to be fixed. Parsing values was removed since they are not added to the UML file. Also texts are separate section and therefore it needs to be added as separate element. Signed-off-by: Piotr Maziarz --- src/topology/ctl.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/topology/ctl.c b/src/topology/ctl.c index c8c7e94..24eadc8 100644 --- a/src/topology/ctl.c +++ b/src/topology/ctl.c @@ -1088,11 +1088,19 @@ int tplg_add_enum(snd_tplg_t *tplg, struct snd_tplg_enum_template *enum_ctl, } if (enum_ctl->texts != NULL) { + struct tplg_elem *texts = tplg_elem_new_common(tplg, NULL, + enum_ctl->hdr.name, SND_TPLG_TYPE_TEXT); + + texts->texts->num_items = num_items; for (i = 0; i < num_items; i++) { - if (enum_ctl->texts[i] != NULL) - snd_strlcpy(ec->texts[i], enum_ctl->texts[i], - SNDRV_CTL_ELEM_ID_NAME_MAXLEN); + if (!enum_ctl->texts[i]) + continue; + snd_strlcpy(ec->texts[i], enum_ctl->texts[i], + SNDRV_CTL_ELEM_ID_NAME_MAXLEN); + snd_strlcpy(texts->texts->items[i], enum_ctl->texts[i], + SNDRV_CTL_ELEM_ID_NAME_MAXLEN); } + tplg_ref_add(elem, SND_TPLG_TYPE_TEXT, enum_ctl->hdr.name); } if (enum_ctl->values != NULL) { @@ -1367,11 +1375,8 @@ int tplg_decode_control_enum1(snd_tplg_t *tplg, et->texts = tplg_calloc(heap, sizeof(char *) * ec->items); if (!et->texts) return -ENOMEM; - for (i = 0; ec->items; i++) { - unsigned int j = i * sizeof(int) * ENUM_VAL_SIZE; + for (i = 0; i < ec->items; i++) et->texts[i] = ec->texts[i]; - et->values[i] = (int *)&ec->values[j]; - } } et->map = tplg_calloc(heap, sizeof(struct snd_tplg_channel_map_template)); From patchwork Thu Jun 25 11:03:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Piotr Maziarz X-Patchwork-Id: 11624987 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 22A8014E3 for ; Thu, 25 Jun 2020 12:09:55 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A2B7B207D8 for ; Thu, 25 Jun 2020 12:09:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="liXymzNH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A2B7B207D8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 3B4A618DD; Thu, 25 Jun 2020 14:09:06 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 3B4A618DD DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1593086993; bh=7zjFxo4K5u/n5nGsOUIchVQEE5hUS76ak8eFEPujWlo=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=liXymzNH8i/UaXi/fZrkFtdDtINg8/Qu2L2iDtJVmmfzjWT2/vkOk2IlFuwpeFq9m r17VCApQauKTgDSoD/eUrnZRHtORxsACDp/2SfzeQ+BJiVLCmS2UqYsRHjuEuKS3xz kJ/aH4ftQ5FF/5uBHQlmYsEmtykDFpdLicSFM6Z0= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 2449FF802DB; Thu, 25 Jun 2020 14:05:59 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa1.perex.cz (Postfix, from userid 50401) id 17F62F802A8; Thu, 25 Jun 2020 14:05:55 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on alsa1.perex.cz X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_NONE, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id BB708F80234 for ; Thu, 25 Jun 2020 14:05:39 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz BB708F80234 IronPort-SDR: cbTNr1j1m8T46qJXj8p42V1yXgtJtWbBiNcP1kp4wbNMF389krkEIzCKEyNY+4CMFEfRzOKpzT KksCsezSnT3g== X-IronPort-AV: E=McAfee;i="6000,8403,9662"; a="206389928" X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="206389928" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jun 2020 05:05:37 -0700 IronPort-SDR: +/k1B7mplXKKFL3eick5KAGE3xA/LlZ3m8n7ko2HdlK5WjbiuKxnSZEML/nrIAp367ITBNuJcK 9re4DXA3lmYg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="354438953" Received: from test-hp-compaq-8100-elite-cmt-pc.igk.intel.com ([10.237.149.93]) by orsmga001.jf.intel.com with ESMTP; 25 Jun 2020 05:05:36 -0700 From: Piotr Maziarz To: alsa-devel@alsa-project.org Subject: [PATCH alsa-lib 3/8] topology: decode: Fix printing texts section Date: Thu, 25 Jun 2020 13:03:41 +0200 Message-Id: <1593083026-7501-3-git-send-email-piotrx.maziarz@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> References: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> Cc: cezary.rojewski@intel.com, amadeuszx.slawinski@intel.com X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Signed-off-by: Piotr Maziarz --- src/topology/text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/topology/text.c b/src/topology/text.c index 507c545..b899b28 100644 --- a/src/topology/text.c +++ b/src/topology/text.c @@ -103,7 +103,7 @@ int tplg_save_text(snd_tplg_t *tplg ATTRIBUTE_UNUSED, return 0; err = tplg_save_printf(dst, pfx, "'%s'.values [\n", elem->id); for (i = 0; err >= 0 && i < texts->num_items; i++) - err = tplg_save_printf(dst, pfx, "\t'%s'\n", texts->items[i][0]); + err = tplg_save_printf(dst, pfx, "\t'%s'\n", texts->items[i]); if (err >= 0) err = tplg_save_printf(dst, pfx, "]\n"); return err; From patchwork Thu Jun 25 11:03:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Piotr Maziarz X-Patchwork-Id: 11624981 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3949D92A for ; Thu, 25 Jun 2020 12:08:17 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C26092076E for ; Thu, 25 Jun 2020 12:08:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="PR7vZLFC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C26092076E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 51EB518DE; Thu, 25 Jun 2020 14:07:28 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 51EB518DE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1593086895; bh=22e/obb5ShwM0dLH10zu4DerUoff0JgSOBne0CP8iCk=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=PR7vZLFCfcDMTbx4uAjeQBz/vBJMdGR5XYPTw37NcGU3PiP5exEx/jCATP8aHrHpc hLX/+1o5+kQfqVt+RDZYhqFjn5NMhmeMMKiTQKKzWrkSugvU/Sl+EoV/3BMvnbPN44 b3DNPtXelV7Gij6fjuDsr1Ur6RQzKL8sx3aJXCss= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id EAEF4F80249; Thu, 25 Jun 2020 14:05:54 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa1.perex.cz (Postfix, from userid 50401) id 55781F802A8; Thu, 25 Jun 2020 14:05:52 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on alsa1.perex.cz X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_NONE, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id B626FF8023E for ; Thu, 25 Jun 2020 14:05:40 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz B626FF8023E IronPort-SDR: vKyC13sWMpdzRxf22YOwn75lEavN74vQigf2rSf5Zv39KwPYdSx1iPF0uCCE/osVJMivFfHzdC idP/2j9NwHgw== X-IronPort-AV: E=McAfee;i="6000,8403,9662"; a="206389932" X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="206389932" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jun 2020 05:05:39 -0700 IronPort-SDR: OWGI6IkvYC6vFsFNzniIIo0sWEKSlIDlzsbc4PS25rQINq/5lz0Hj+bY4IXiXt1IzDxPwzHmh7 pyRSkQtrqfSQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="354438957" Received: from test-hp-compaq-8100-elite-cmt-pc.igk.intel.com ([10.237.149.93]) by orsmga001.jf.intel.com with ESMTP; 25 Jun 2020 05:05:37 -0700 From: Piotr Maziarz To: alsa-devel@alsa-project.org Subject: [PATCH alsa-lib 4/8] topology: decode: Change declaration of enum decoding function Date: Thu, 25 Jun 2020 13:03:42 +0200 Message-Id: <1593083026-7501-4-git-send-email-piotrx.maziarz@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> References: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> Cc: cezary.rojewski@intel.com, amadeuszx.slawinski@intel.com X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Size constraints are always checked before invoking tplg_decode_control_enum1. There is no need to validate it twice. Alos moved debug print about size to invoking function, since now it's it responsibility to check size. Signed-off-by: Piotr Maziarz --- src/topology/ctl.c | 19 +++++-------------- src/topology/dapm.c | 3 +-- src/topology/tplg_local.h | 2 +- 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/topology/ctl.c b/src/topology/ctl.c index 24eadc8..b5e3e34 100644 --- a/src/topology/ctl.c +++ b/src/topology/ctl.c @@ -1335,22 +1335,10 @@ int tplg_decode_control_enum1(snd_tplg_t *tplg, struct list_head *heap, struct snd_tplg_enum_template *et, size_t pos, - void *bin, size_t size) + struct snd_soc_tplg_enum_control *ec) { - struct snd_soc_tplg_enum_control *ec = bin; int i; - if (size < sizeof(*ec)) { - SNDERR("enum: small size %d", size); - return -EINVAL; - } - - tplg_log(tplg, 'D', pos, "enum: size %d private size %d", - ec->size, ec->priv.size); - if (size != ec->size + ec->priv.size) { - SNDERR("enum: unexpected element size %d", size); - return -EINVAL; - } if (ec->num_channels > SND_TPLG_MAX_CHAN || ec->num_channels > SND_SOC_TPLG_MAX_CHAN) { SNDERR("enum: unexpected channel count %d", ec->num_channels); @@ -1425,7 +1413,10 @@ next: return -EINVAL; } - err = tplg_decode_control_enum1(tplg, &heap, &et, pos, bin, size); + tplg_log(tplg, 'D', pos, "enum: size %d private size %d", + ec->size, ec->priv.size); + + err = tplg_decode_control_enum1(tplg, &heap, &et, pos, ec); if (err >= 0) { t.enum_ctl = &et; err = snd_tplg_add_object(tplg, &t); diff --git a/src/topology/dapm.c b/src/topology/dapm.c index cd1a877..73a9390 100644 --- a/src/topology/dapm.c +++ b/src/topology/dapm.c @@ -972,8 +972,7 @@ next: err = -EINVAL; goto retval; } - err = tplg_decode_control_enum1(tplg, &heap, et, pos, - bin, size2); + err = tplg_decode_control_enum1(tplg, &heap, et, pos, ec); break; case SND_SOC_TPLG_TYPE_BYTES: bt = tplg_calloc(&heap, sizeof(*bt)); diff --git a/src/topology/tplg_local.h b/src/topology/tplg_local.h index 5ace0d1..acb01a8 100644 --- a/src/topology/tplg_local.h +++ b/src/topology/tplg_local.h @@ -398,7 +398,7 @@ int tplg_decode_control_enum1(snd_tplg_t *tplg, struct list_head *heap, struct snd_tplg_enum_template *et, size_t pos, - void *bin, size_t size); + struct snd_soc_tplg_enum_control *ec); int tplg_decode_control_enum(snd_tplg_t *tplg, size_t pos, struct snd_soc_tplg_hdr *hdr, void *bin, size_t size); From patchwork Thu Jun 25 11:03:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Piotr Maziarz X-Patchwork-Id: 11624983 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C4F2792A for ; Thu, 25 Jun 2020 12:08:52 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 59E852076E for ; Thu, 25 Jun 2020 12:08:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="IdKF5Rqk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 59E852076E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id DCF7E1886; Thu, 25 Jun 2020 14:08:03 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz DCF7E1886 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1593086930; bh=3IyPOezfJjebFqUSNNL4opUwfK5akQA/OmxyD9z+A+I=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=IdKF5RqkG8Gku+Mumr4DiGHb6nJxT+sn/3gty16lN1UzaYp2gj65Mbz7yWB00awa+ JyqJ4n2P3xCbLuLnaZaR460pl4WSx3/SvhsOg7T2mR9rf6yBbioWiXMVXtRs0n+AJG ymjTqUeIsNUbruMjFWhiug57cTqe66KpilM/g664= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id AE6D3F802BC; Thu, 25 Jun 2020 14:05:56 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa1.perex.cz (Postfix, from userid 50401) id 76B4CF802A7; Thu, 25 Jun 2020 14:05:52 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on alsa1.perex.cz X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_NONE, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 48F01F80218 for ; Thu, 25 Jun 2020 14:05:41 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 48F01F80218 IronPort-SDR: LTpjhfrAc632oAEE615eBw2mim6bt/m2X8sfv4V9qdkuMHN1blfacx66QYahjXgjde29X4K9gH WDVnJChKwIgg== X-IronPort-AV: E=McAfee;i="6000,8403,9662"; a="206389937" X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="206389937" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jun 2020 05:05:40 -0700 IronPort-SDR: hHHPgURUk1BOougzDVnAdbbGTx1TAPW9gdtq8fMUpq2njTTeyFf4xd6Vo7TE/YGD5aDU91mfju PjddTDrNtvXw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="354438961" Received: from test-hp-compaq-8100-elite-cmt-pc.igk.intel.com ([10.237.149.93]) by orsmga001.jf.intel.com with ESMTP; 25 Jun 2020 05:05:39 -0700 From: Piotr Maziarz To: alsa-devel@alsa-project.org Subject: [PATCH alsa-lib 5/8] topology: decode: Fix decoding PCM formats and rates Date: Thu, 25 Jun 2020 13:03:43 +0200 Message-Id: <1593083026-7501-5-git-send-email-piotrx.maziarz@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> References: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> Cc: cezary.rojewski@intel.com, amadeuszx.slawinski@intel.com X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Not checking _LAST format and rate, which are valid indexes in arrays, makes data loss while converting binary to UML. Signed-off-by: Piotr Maziarz --- src/topology/pcm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/topology/pcm.c b/src/topology/pcm.c index b15b950..db40114 100644 --- a/src/topology/pcm.c +++ b/src/topology/pcm.c @@ -549,7 +549,7 @@ int tplg_save_stream_caps(snd_tplg_t *tplg ATTRIBUTE_UNUSED, if (err >= 0 && sc->formats) { err = tplg_save_printf(dst, pfx, "\tformats '"); first = 1; - for (i = 0; err >= 0 && i < SND_PCM_FORMAT_LAST; i++) { + for (i = 0; err >= 0 && i <= SND_PCM_FORMAT_LAST; i++) { if (sc->formats & (1ULL << i)) { s = snd_pcm_format_name(i); err = tplg_save_printf(dst, NULL, "%s%s", @@ -563,7 +563,7 @@ int tplg_save_stream_caps(snd_tplg_t *tplg ATTRIBUTE_UNUSED, if (err >= 0 && sc->rates) { err = tplg_save_printf(dst, pfx, "\trates '"); first = 1; - for (i = 0; err >= 0 && i < SND_PCM_RATE_LAST; i++) { + for (i = 0; err >= 0 && i <= SND_PCM_RATE_LAST; i++) { if (sc->rates & (1ULL << i)) { s = get_rate_name(i); err = tplg_save_printf(dst, NULL, "%s%s", From patchwork Thu Jun 25 11:03:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Piotr Maziarz X-Patchwork-Id: 11624985 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F188992A for ; Thu, 25 Jun 2020 12:09:09 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 862B02076E for ; Thu, 25 Jun 2020 12:09:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="UXMDYRFj" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 862B02076E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 1D78218E0; Thu, 25 Jun 2020 14:08:21 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 1D78218E0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1593086948; bh=EZryfd/5vIba/NjhnW0kIE8f6OzJvEk9RpCrrki5dAY=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=UXMDYRFjntoRX3I4zGnl4kPCFRQKWGh3PWUqbzKauZNkE4F/q+ZwBRP4mS/nL27F0 SieTW0n+DjhpaeqxBxR7KEDJpk8afJukHJ1PRuh/SErJF6WwgA91YzzhaLJFe/0STa 47UY4IlkHNrUY28WS0DVkh8q0Mn77Ebh992SKuJw= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id F3032F802A8; Thu, 25 Jun 2020 14:05:57 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa1.perex.cz (Postfix, from userid 50401) id D88B8F802A9; Thu, 25 Jun 2020 14:05:54 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on alsa1.perex.cz X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_NONE, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 637D8F80249 for ; Thu, 25 Jun 2020 14:05:42 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 637D8F80249 IronPort-SDR: vO5MeeSu00uvab3yZ4Nii7zXRrJVRN/xN8wcd6aEK+4Jt8d4rsTRQS7Qr6tdYsq0f/9K/a8nuJ ilQoWEt7rJbg== X-IronPort-AV: E=McAfee;i="6000,8403,9662"; a="206389938" X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="206389938" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jun 2020 05:05:42 -0700 IronPort-SDR: VeGqjCH9wKlrhIsIm5KW2dueswOFm12zVruaJPAqGuDgCdIZfR0VBj8jr80aZTHYcXL/Jz/Zk2 rgAk7LRIStPg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="354438967" Received: from test-hp-compaq-8100-elite-cmt-pc.igk.intel.com ([10.237.149.93]) by orsmga001.jf.intel.com with ESMTP; 25 Jun 2020 05:05:40 -0700 From: Piotr Maziarz To: alsa-devel@alsa-project.org Subject: [PATCH alsa-lib 6/8] topology: decode: Print sig_bits field in PCM capabilities section Date: Thu, 25 Jun 2020 13:03:44 +0200 Message-Id: <1593083026-7501-6-git-send-email-piotrx.maziarz@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> References: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> Cc: cezary.rojewski@intel.com, amadeuszx.slawinski@intel.com X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Not printing this field makes data loss while converting from binary to UML. Signed-off-by: Piotr Maziarz --- src/topology/pcm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/topology/pcm.c b/src/topology/pcm.c index db40114..49c5eab 100644 --- a/src/topology/pcm.c +++ b/src/topology/pcm.c @@ -604,6 +604,9 @@ int tplg_save_stream_caps(snd_tplg_t *tplg ATTRIBUTE_UNUSED, if (err >= 0 && sc->buffer_size_max) err = tplg_save_printf(dst, pfx, "\tbuffer_size_max %u\n", sc->buffer_size_max); + if (err >= 0 && sc->sig_bits) + err = tplg_save_printf(dst, pfx, "\tsig_bits %u\n", + sc->sig_bits); if (err >= 0) err = tplg_save_printf(dst, pfx, "}\n"); return err; From patchwork Thu Jun 25 11:03:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Piotr Maziarz X-Patchwork-Id: 11624989 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1A95192A for ; Thu, 25 Jun 2020 12:10:39 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A31D8206A5 for ; Thu, 25 Jun 2020 12:10:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="IPE2Cvi+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A31D8206A5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 3AE58843; Thu, 25 Jun 2020 14:09:50 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 3AE58843 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1593087037; bh=qPrmTmWIZmjanQ98uvsYyjle6NebOBCpgwSdJUQDCRw=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=IPE2Cvi+a+JF5auwe65xIhg+XFjbvS0/MkdFtJbvPFTuMTg7SBbjlbdOIfXxW0xic MiUUGfyMQSwyXb2YwyTrHoiagELO99NwEAB6M2UPs/G6BGG8oqJ7F2yRHUlUjJVFID pFOrPLijcUvGskVj2WC23Mmd7fPzye7kw/YTHEw0= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 474D4F802E7; Thu, 25 Jun 2020 14:06:02 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa1.perex.cz (Postfix, from userid 50401) id CEF13F802BE; Thu, 25 Jun 2020 14:05:56 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on alsa1.perex.cz X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_NONE, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 4A470F80259 for ; Thu, 25 Jun 2020 14:05:44 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 4A470F80259 IronPort-SDR: rb+cTLIFwJ4BfKNgjqJZBzYfkrbhXYpDgJssOGjqkW+n6NRYf8HjFBFkHzHG2kn/efF4KL6zl1 lvYwRfNnRqRQ== X-IronPort-AV: E=McAfee;i="6000,8403,9662"; a="206389944" X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="206389944" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jun 2020 05:05:43 -0700 IronPort-SDR: cIpxOQRl8TIs9aT/A64BC+C54thb/aqcKb0yCUpAr99/wCbjBZkuq0EUJqLUJuq6dQlelsarWh zmPlJhdDOsBg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="354438978" Received: from test-hp-compaq-8100-elite-cmt-pc.igk.intel.com ([10.237.149.93]) by orsmga001.jf.intel.com with ESMTP; 25 Jun 2020 05:05:42 -0700 From: Piotr Maziarz To: alsa-devel@alsa-project.org Subject: [PATCH alsa-lib 7/8] topology: decode: Add DAI name printing Date: Thu, 25 Jun 2020 13:03:45 +0200 Message-Id: <1593083026-7501-7-git-send-email-piotrx.maziarz@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> References: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> Cc: cezary.rojewski@intel.com, amadeuszx.slawinski@intel.com X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" DAI name is a part of topology binary. Not printing makes data loss while converting from binary to UML. Signed-off-by: Piotr Maziarz --- src/topology/pcm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/topology/pcm.c b/src/topology/pcm.c index 49c5eab..5a54e15 100644 --- a/src/topology/pcm.c +++ b/src/topology/pcm.c @@ -781,7 +781,9 @@ int tplg_save_fe_dai(snd_tplg_t *tplg ATTRIBUTE_UNUSED, struct snd_soc_tplg_pcm *pcm = elem->pcm; int err = 0; - if (pcm->dai_id > 0) + if (strlen(pcm->dai_name)) + err = tplg_save_printf(dst, pfx, "dai.'%s'.id %u\n", pcm->dai_name, pcm->dai_id); + else if (pcm->dai_id > 0) err = tplg_save_printf(dst, pfx, "dai.0.id %u\n", pcm->dai_id); return err; } From patchwork Thu Jun 25 11:03:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Piotr Maziarz X-Patchwork-Id: 11624991 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4146E14E3 for ; Thu, 25 Jun 2020 12:11:01 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CAEDB2065D for ; Thu, 25 Jun 2020 12:11:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="BIxIrofL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CAEDB2065D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 5B371180D; Thu, 25 Jun 2020 14:10:12 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 5B371180D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1593087059; bh=jJMobRRJJtzFYwugY7LNlLfjeGm+OfGICmdhKue+liE=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=BIxIrofL5nkYgewKA4OaLjTDe4UF3WjQhFDhhytykozHFbF97snOXqVJJOPJuuzsc JOEK0bKbglpRZhbCvJNiQkvwDFMe2BHlKdMqDp+x7wMSgIqQkEDk4v6mGalSvCYM/Q xGDIKZjlb8tcoFXfTZihUaTpK1mXWiVxaPMZ5a0s= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 199D1F802F7; Thu, 25 Jun 2020 14:06:04 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa1.perex.cz (Postfix, from userid 50401) id DEBE0F8025E; Thu, 25 Jun 2020 14:05:57 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on alsa1.perex.cz X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_NONE, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 3E6B7F8025E for ; Thu, 25 Jun 2020 14:05:47 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 3E6B7F8025E IronPort-SDR: uYoe4PiytYMNW6eKmah6TeVvYBFAO7xtfFMBMN6yC7a3fUB/ZClVMTs3aRCN77Mt+IbZy/q1sn mG2vXvpMND6g== X-IronPort-AV: E=McAfee;i="6000,8403,9662"; a="206389955" X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="206389955" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jun 2020 05:05:46 -0700 IronPort-SDR: qrmUxfyYrdtfPUTadlSuIC4+ZjywDLGu75ERzSpG8Sgh/KITdpWc/+WY9Ci/T2nGeJ+w50GEXN wVM1O4YQNwwQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,279,1589266800"; d="scan'208";a="354438989" Received: from test-hp-compaq-8100-elite-cmt-pc.igk.intel.com ([10.237.149.93]) by orsmga001.jf.intel.com with ESMTP; 25 Jun 2020 05:05:43 -0700 From: Piotr Maziarz To: alsa-devel@alsa-project.org Subject: [PATCH alsa-lib 8/8] topology: Make buffer for saving dynamic size Date: Thu, 25 Jun 2020 13:03:46 +0200 Message-Id: <1593083026-7501-8-git-send-email-piotrx.maziarz@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> References: <1593083026-7501-1-git-send-email-piotrx.maziarz@linux.intel.com> Cc: cezary.rojewski@intel.com, amadeuszx.slawinski@intel.com X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Some fields can exceed size limit, e.g. private data has no size restriction. Therefore it needs to be dynamically increased. Signed-off-by: Piotr Maziarz --- src/topology/save.c | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/src/topology/save.c b/src/topology/save.c index 4ecf86c..d6ee8b6 100644 --- a/src/topology/save.c +++ b/src/topology/save.c @@ -19,22 +19,43 @@ #include "tplg_local.h" #define SAVE_ALLOC_SHIFT (13) /* 8192 bytes */ +#define PRINT_BUF_SIZE (1024) +#define PRINT_BUF_SIZE_MAX (1024 * 1024) int tplg_save_printf(char **dst, const char *pfx, const char *fmt, ...) { va_list va; - char buf[1024], *s; - size_t n, l, t, pl; + char *buf, *s; + size_t n, alloc_size = PRINT_BUF_SIZE, l, t, pl; + int ret = 0; + + buf = malloc(alloc_size); + if (!buf) + return -ENOMEM; if (pfx == NULL) pfx = ""; +again: va_start(va, fmt); - n = vsnprintf(buf, sizeof(buf), fmt, va); + n = vsnprintf(buf, alloc_size, fmt, va); va_end(va); - if (n >= sizeof(buf)) - return -EOVERFLOW; + if (n >= PRINT_BUF_SIZE_MAX) { + ret = -EOVERFLOW; + goto end; + } + + if (n >= alloc_size) { + char *tmp = realloc(buf, n + 1); + if (!tmp) { + ret = -ENOMEM; + goto end; + } + buf = tmp; + alloc_size = n + 1; + goto again; + } pl = strlen(pfx); l = *dst ? strlen(*dst) : 0; @@ -47,7 +68,8 @@ int tplg_save_printf(char **dst, const char *pfx, const char *fmt, ...) if (s == NULL) { free(*dst); *dst = NULL; - return -ENOMEM; + ret = -ENOMEM; + goto end; } } else { s = *dst; @@ -57,6 +79,8 @@ int tplg_save_printf(char **dst, const char *pfx, const char *fmt, ...) strcpy(s + l, pfx); strcpy(s + l + pl, buf); *dst = s; +end: + free(buf); return 0; }