From patchwork Mon Feb 12 22:56:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeremy Boone X-Patchwork-Id: 872503 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="hm/4yNFi"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3zgLjs5T62z9sRW for ; Tue, 13 Feb 2018 10:00:33 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 556FCC21F3B; Mon, 12 Feb 2018 23:00:14 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id ABDF4C21EF1; Mon, 12 Feb 2018 22:59:50 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 50855C21DD7; Mon, 12 Feb 2018 22:57:02 +0000 (UTC) Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by lists.denx.de (Postfix) with ESMTPS id EFCBCC21D65 for ; Mon, 12 Feb 2018 22:57:01 +0000 (UTC) Received: by mail-wm0-f67.google.com with SMTP id b21so12804263wme.4 for ; Mon, 12 Feb 2018 14:57:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=T31q+OeCLt/CIhu4U5r9gpSdd0H/sdJLWWr2pVV1NBw=; b=hm/4yNFicftGX+ZHxgnORnnRUioOcgfG3KSLCzoUcbeOdIQxyvCatYD+F7kaJhLNDZ C0f7Mxbk49ad4Z6Mrp1g+ijGjNk5FjkZc05cuCAXmZtZhkAAFxtJDY6ULYJFvz8QjR7L lvPSpaHuUTMq6Q01UyYA5CceBqkSObiR3CxEOAYZvR88i/N0ChXVJIlI+qWL5dLcAbfT Ga25pNbxHM89DneTvD88Np4EEdkcNibZsL8zMxH506hpOv5CAIruzBTfPBgPyOnBfML2 0WASwjetZl/RnC6M9diQHcQNUtDassaZI8C9rKxANYCLY8cZWjIJWwdYV+WotFAqKhjG tEbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=T31q+OeCLt/CIhu4U5r9gpSdd0H/sdJLWWr2pVV1NBw=; b=OTWP/RRNDVg7qHNEDNhCgvy4TKe8sl88HMjQLMhS7gf0gRncrdwEZB0+ny6jNZZk/n piNtCoPsyjRDIwTEnedWSGtEltrkWpO8Nz261nb6KHLGqUz3m55J3IddqpEGd98uvLRb iz9TpHNVdKVoWixhgtljUVZxzy1Of/NjLul9fwJTNw6Ft/x76k6yzkTeLJN54hf0GLIt BXZt4UBm+AI0m8yFxLICDEcJ8x37BxyaG6seT+JSLqd/+CfTVZtx3EyEMLYVJJ5hW/dJ S1EondDg3BU1XD/Pk1AkPCaJLRDZ1nCybOroMdrChNsndyoB4VLISAYykYZDw+XBhjZj Kf1A== X-Gm-Message-State: APf1xPAtl1ByozmTD6QFIHYquOxSqvGVOlXDmb74rxeNsF5GDfEyFqrH fA12QpN2P34JIhz0alcUTdaSz4JO X-Google-Smtp-Source: AH8x226ZuMRDuz0/zVd77cXPps3ttMG2Rzjix6X/HhRzoQ9xy3vVCoLcwuUXXiuQP83d9MBTN73RZw== X-Received: by 10.28.9.18 with SMTP id 18mr86416wmj.37.1518476221335; Mon, 12 Feb 2018 14:57:01 -0800 (PST) Received: from localhost.localdomain ([195.95.131.65]) by smtp.gmail.com with ESMTPSA id m191sm6184548wma.42.2018.02.12.14.57.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 12 Feb 2018 14:57:00 -0800 (PST) From: Jeremy Boone To: u-boot@lists.denx.de Date: Mon, 12 Feb 2018 17:56:35 -0500 Message-Id: <1518476197-24517-2-git-send-email-jeremy.boone@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1518476197-24517-1-git-send-email-jeremy.boone@gmail.com> References: <1518476197-24517-1-git-send-email-jeremy.boone@gmail.com> X-Mailman-Approved-At: Mon, 12 Feb 2018 22:59:48 +0000 Cc: Jeremy Boone Subject: [U-Boot] [PATCH 1/3] STMicro TPM: Fix potential buffer overruns X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Jeremy Boone This patch prevents integer underflow when the length was too small, which could lead to memory corruption. Signed-off-by: Jeremy Boone --- drivers/tpm/tpm_tis_st33zp24_i2c.c | 5 +++-- drivers/tpm/tpm_tis_st33zp24_spi.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/tpm/tpm_tis_st33zp24_i2c.c b/drivers/tpm/tpm_tis_st33zp24_i2c.c index c8d0125..245218f 100644 --- a/drivers/tpm/tpm_tis_st33zp24_i2c.c +++ b/drivers/tpm/tpm_tis_st33zp24_i2c.c @@ -303,7 +303,8 @@ static int st33zp24_i2c_recv_data(struct udevice *dev, u8 *buf, size_t count) static int st33zp24_i2c_recv(struct udevice *dev, u8 *buf, size_t count) { struct tpm_chip *chip = dev_get_priv(dev); - int size, expected; + int size; + unsigned int expected; if (!chip) return -ENODEV; @@ -320,7 +321,7 @@ static int st33zp24_i2c_recv(struct udevice *dev, u8 *buf, size_t count) } expected = get_unaligned_be32(buf + 2); - if (expected > count) { + if (expected > count || expected < TPM_HEADER_SIZE) { size = -EIO; goto out; } diff --git a/drivers/tpm/tpm_tis_st33zp24_spi.c b/drivers/tpm/tpm_tis_st33zp24_spi.c index dcf55ee..c4c5e05 100644 --- a/drivers/tpm/tpm_tis_st33zp24_spi.c +++ b/drivers/tpm/tpm_tis_st33zp24_spi.c @@ -431,7 +431,8 @@ static int st33zp24_spi_recv_data(struct udevice *dev, u8 *buf, size_t count) static int st33zp24_spi_recv(struct udevice *dev, u8 *buf, size_t count) { struct tpm_chip *chip = dev_get_priv(dev); - int size, expected; + int size; + unsigned int expected; if (!chip) return -ENODEV; @@ -448,7 +449,7 @@ static int st33zp24_spi_recv(struct udevice *dev, u8 *buf, size_t count) } expected = get_unaligned_be32(buf + 2); - if (expected > count) { + if (expected > count || expected < TPM_HEADER_SIZE) { size = -EIO; goto out; } From patchwork Mon Feb 12 22:56:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeremy Boone X-Patchwork-Id: 872504 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jZgXprrC"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3zgLlC4SySz9sRW for ; Tue, 13 Feb 2018 10:01:42 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id D28B6C21E73; Mon, 12 Feb 2018 23:00:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 84581C21F02; Mon, 12 Feb 2018 22:59:51 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id E3C1BC21DD7; Mon, 12 Feb 2018 22:57:10 +0000 (UTC) Received: from mail-wr0-f193.google.com (mail-wr0-f193.google.com [209.85.128.193]) by lists.denx.de (Postfix) with ESMTPS id 7ACB5C21D65 for ; Mon, 12 Feb 2018 22:57:10 +0000 (UTC) Received: by mail-wr0-f193.google.com with SMTP id o76so13711102wrb.7 for ; Mon, 12 Feb 2018 14:57:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=oxYhT3gQ5uI1BtG6DEr/65H4LHCcN3t46+XYVj15huI=; b=jZgXprrCSTkL1KttUFZgmVqJoq4KmWst3Vo/9oT9uy+svJqq8QekGFHQruGOTHhBtp 26T3jTyCnGc630hq2mzCwMY8qUqas7CRyCQrSnyjMEVlpYg1eFZIi2EWS9YKiPxZk6VG weKjEVQpECaq+9Q3i2NTnftrKD4R6uNzzzJkZ8JSQTaHKBVjbKgWg5Ae+8kB3u4zJIVn dqtfuEYelg4ZCjvPW6X1ZuWJFTfyf6+AT93CZTcL0G18mFTuRKvzhwV7zOoe4ZWk/8SZ TTGU7ZeMaCL/1hrMoKyqwsWRdH+SGQyYBq8lK96mTsd80cUN10ub8G3MsAdz6xnqRqQy X8pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=oxYhT3gQ5uI1BtG6DEr/65H4LHCcN3t46+XYVj15huI=; b=Zx56kDcdo5HxUW+2U1YdL8tSi1g6ym4L7XwClnN0B8169sVhhqck4zVafQyiQjbMYD irhv4zdu49s2Lf+ZOXXOpxHH8uONEvBj0BnL2/WR10kxqscUpvi4QKIEsSjL3LQirtkq 8Q5Yzf0E0YS9ULIjMXhaJA/0q3Ces0pOdJVK09aAVVGfMMRnJtPMNjWq6pU51Ukjh68D 9ZOZjr1/M0A++qaneCgopGdcDjAYSOMMa7DdvawgQpY23BbhceV92TbyoiCfiku4S3XN Pqq6RlbwIwnVv68hNYHBd5y/w0yEKRawvcSMg+z4OHasNIxQSYmj7PVPh+zFpDZwbiB7 Rtsg== X-Gm-Message-State: APf1xPCGkNAjvrDrdets1AE4ecva2OBkHOnC3dhcbwfc2n4WuBIyUEaI yDSoKzd2s2iHNMu2370yssNfJgGc X-Google-Smtp-Source: AH8x227kGrxVIVAGW3l0pzT8mP+K5JaRx5eFcBAy1K6KjWwuSvcN/U1UqqXghDb1AZJYWkBmGSVtlg== X-Received: by 10.223.133.141 with SMTP id 13mr9951175wrt.226.1518476229848; Mon, 12 Feb 2018 14:57:09 -0800 (PST) Received: from localhost.localdomain ([195.95.131.65]) by smtp.gmail.com with ESMTPSA id m191sm6184548wma.42.2018.02.12.14.57.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 12 Feb 2018 14:57:09 -0800 (PST) From: Jeremy Boone To: u-boot@lists.denx.de Date: Mon, 12 Feb 2018 17:56:36 -0500 Message-Id: <1518476197-24517-3-git-send-email-jeremy.boone@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1518476197-24517-1-git-send-email-jeremy.boone@gmail.com> References: <1518476197-24517-1-git-send-email-jeremy.boone@gmail.com> X-Mailman-Approved-At: Mon, 12 Feb 2018 22:59:48 +0000 Cc: Jeremy Boone Subject: [U-Boot] [PATCH 2/3] Infineon TPM: Fix potential buffer overruns X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Jeremy Boone Ensure that the Infineon I2C and SPI TPM driver performs adequate validation of the length extracted from the TPM response header. This patch prevents integer underflow when the length was too small, which could lead to memory corruption. Signed-off-by: Jeremy Boone --- drivers/tpm/tpm_tis_infineon.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/tpm/tpm_tis_infineon.c b/drivers/tpm/tpm_tis_infineon.c index e3e20d8..41b748e 100644 --- a/drivers/tpm/tpm_tis_infineon.c +++ b/drivers/tpm/tpm_tis_infineon.c @@ -374,7 +374,8 @@ static int tpm_tis_i2c_recv(struct udevice *dev, u8 *buf, size_t count) { struct tpm_chip *chip = dev_get_priv(dev); int size = 0; - int expected, status; + int status; + unsigned int expected; int rc; status = tpm_tis_i2c_status(dev); @@ -394,7 +395,7 @@ static int tpm_tis_i2c_recv(struct udevice *dev, u8 *buf, size_t count) } expected = get_unaligned_be32(buf + TPM_RSP_SIZE_BYTE); - if ((size_t)expected > count) { + if ((size_t)expected > count || (size_t)expected < TPM_HEADER_SIZE) { debug("Error size=%x, expected=%x, count=%x\n", size, expected, count); return -ENOSPC; From patchwork Mon Feb 12 22:56:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeremy Boone X-Patchwork-Id: 872505 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="DFKl/c0X"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3zgLlt2xC2z9sRW for ; Tue, 13 Feb 2018 10:02:16 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 1CE3DC21F4D; Mon, 12 Feb 2018 23:00:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 6CE3DC21F31; Mon, 12 Feb 2018 22:59:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 4D6DFC21DD9; Mon, 12 Feb 2018 22:57:14 +0000 (UTC) Received: from mail-wr0-f193.google.com (mail-wr0-f193.google.com [209.85.128.193]) by lists.denx.de (Postfix) with ESMTPS id E2371C21D65 for ; Mon, 12 Feb 2018 22:57:13 +0000 (UTC) Received: by mail-wr0-f193.google.com with SMTP id b52so16804833wrd.10 for ; Mon, 12 Feb 2018 14:57:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lW2N3Tfy0ghhmhunXmTzA8a0bQHO0808YuryDu8Akg8=; b=DFKl/c0XP1MwGNXG+bLS6i/K4YA0C7ypCAowSIukNjIp7CmYBupszeplJuHLOaIthy feI9FBUiEieyHrrI3BxXoydr4Wi3r6N9GmPz7hwxw6zOtls8qk6BL/6j2Ojk4HfY5j4e O04S8VrejskHaO6WEH73DQfuv1Ye6adLveV6Z61e6kj21B5HPqyhJbEZCj+rY4ZyzeA+ /f3MCbMSyzLEpiuKlRkqepgjPRjxYyUUAInFfQaXIgwL/MtFMQQvxqesBq61gXrdwoe6 uL/17eJ7bKM5fStTc2oMpkGthhzrGF3p0esodJ8u2K7moaOgl5Zcd8iZ7FV4v88TKUJR gjzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=lW2N3Tfy0ghhmhunXmTzA8a0bQHO0808YuryDu8Akg8=; b=SCHwtDgc6kGP92B8hcESsN4bGdWaC98luLTtuNj55iep3yxLndLkHeV8XmDMNCaoAD ofQ3QS2mv4Dn8MM+/dfRSnGMK5pT5ffMKZuCr0kWZnJHPr0SahjM7EEI7V9iWx0uXR3f uJTTUYelrxLKtMvxYajyQDBCIGei80yK8OrXAKMP3kFvd6EFW0247PiLE3qp2UFBW1+b +/PiK+GFEwdw3ouT/ZadPwHUHGZtB4fmPEN2ph3bF7AS1RvOhvSkm5Ar+/gYhLOTlRBK LZLNV2dHXNwQIaiQw2Lh3qPytt5jEyEBaPNs2CiX6AJwEoNQ7f5aInPaqrCg3xlZdEsd p/9A== X-Gm-Message-State: APf1xPCs4Q4OQAvGZA0czzpuaKO8B25lgIVJmODrhwp9fmWUBlCyC0dm fBWnwTsl+jSTyo6hnMR0/cKLXEfd X-Google-Smtp-Source: AH8x225YIYLVBvXTYpjVvy4bJCtegxMiKgmvliA3fTLGxSgyrBWkdWnbluifx0Gjxp/9eoyubnkTpw== X-Received: by 10.223.163.207 with SMTP id m15mr11673104wrb.174.1518476233328; Mon, 12 Feb 2018 14:57:13 -0800 (PST) Received: from localhost.localdomain ([195.95.131.65]) by smtp.gmail.com with ESMTPSA id m191sm6184548wma.42.2018.02.12.14.57.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 12 Feb 2018 14:57:12 -0800 (PST) From: Jeremy Boone To: u-boot@lists.denx.de Date: Mon, 12 Feb 2018 17:56:37 -0500 Message-Id: <1518476197-24517-4-git-send-email-jeremy.boone@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1518476197-24517-1-git-send-email-jeremy.boone@gmail.com> References: <1518476197-24517-1-git-send-email-jeremy.boone@gmail.com> X-Mailman-Approved-At: Mon, 12 Feb 2018 22:59:48 +0000 Cc: Jeremy Boone Subject: [U-Boot] [PATCH 3/3] Atmel TPM: Fix potential buffer overruns X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Jeremy Boone Ensure that the Atmel TPM driver performs sufficient validation of the length returned in the TPM response header. This patch prevents memory corruption if the header contains a length value that is larger than the destination buffer. Signed-off-by: Jeremy Boone --- drivers/tpm/tpm_atmel_twi.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/tpm/tpm_atmel_twi.c b/drivers/tpm/tpm_atmel_twi.c index eba654b..4fd772d 100644 --- a/drivers/tpm/tpm_atmel_twi.c +++ b/drivers/tpm/tpm_atmel_twi.c @@ -106,13 +106,23 @@ static int tpm_atmel_twi_xfer(struct udevice *dev, udelay(100); } if (!res) { - *recv_len = get_unaligned_be32(recvbuf + 2); - if (*recv_len > 10) + unsigned int hdr_recv_len; + hdr_recv_len = get_unaligned_be32(recvbuf + 2); + if (hdr_recv_len < 10) { + puts("tpm response header too small\n"); + return -1; + } else if (hdr_recv_len > *recv_len) { + puts("tpm response length is bigger than receive buffer\n"); + return -1; + } else { + *recv_len = hdr_recv_len; #ifndef CONFIG_DM_I2C res = i2c_read(0x29, 0, 0, recvbuf, *recv_len); #else res = dm_i2c_read(dev, 0, recvbuf, *recv_len); #endif + + } } if (res) { printf("i2c_read returned %d (rlen=%d)\n", res, *recv_len);