From nobody Thu Oct 30 16:33:17 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500921385177411.3256654618382; Mon, 24 Jul 2017 11:36:25 -0700 (PDT) Received: from localhost ([::1]:56350 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dZiDP-0006Yh-Cb for importer@patchew.org; Mon, 24 Jul 2017 14:36:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50094) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dZi5i-0008Fz-7w for qemu-devel@nongnu.org; Mon, 24 Jul 2017 14:28:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dZi5f-0004kF-JC for qemu-devel@nongnu.org; Mon, 24 Jul 2017 14:28:26 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:37786) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dZi5f-0004kB-F0 for qemu-devel@nongnu.org; Mon, 24 Jul 2017 14:28:23 -0400 Received: by mail-qk0-x241.google.com with SMTP id q130so10663079qka.4 for ; Mon, 24 Jul 2017 11:28:23 -0700 (PDT) Received: from yoga.offpageads.com ([138.117.48.223]) by smtp.gmail.com with ESMTPSA id t57sm9033799qtt.18.2017.07.24.11.28.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Jul 2017 11:28:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pn7pRvylXYhKX6t+EBhaRllaOiqBouTfIdKVHpTt5z4=; b=S8tpEV9Mc32DFcx8OuMrQ11cblvIGANuQYBnbyYe0cvLy8XM1MttFltCwDMFQ/WGxq pu0AN65xkzH2qenAVeVUwlHX2De973B2+P88XSUzl6AINm3ZtjaRGGtOoYn9O1awU76y kK7vxfDfhHQpN0ZLAgUR69fv4oyCv7xC9aN3z0iwJinhZlkkqBKsDtAsgvhe3yoZ7LuQ sG510uQtAMpk8SasjdeOFmWXOyQZO/+L6iTMRrUWGNOzTJ92lshfFMGyojAvbv9Yqdm7 fMh+53U7LGa+WqJolRymqf10voSqlXnpr9FPFlVEk7Yx/VgmHqOSI5DUlSrFcHk5z0R9 U84A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=pn7pRvylXYhKX6t+EBhaRllaOiqBouTfIdKVHpTt5z4=; b=JrI2hgEpd3CecXzKaG2KYbo/ZOiU6XHUFjx/uNSe2g5jkq4CZW+J0X4Z6rK4JudT9a PSxDPaRSCLtGFNnpB1MMMsJWoxmSPEXfDBGaFwD9bqksXKA1OdYOpelbz+cvrsfFFto1 c9DCRuBK76TfWMf3lSI9w6uz5SJQnx78TyA6l0320gAgb7a7dYM+hBHpcM3dlMg8FtYN TJmRFTa72LUSYbA/toeg5uub6P1e0poBzvP48a2tvly9SWGeBHKCEKin6ykgSyPA9W54 gFcBz/naHvRYlNzPayXobTP/Vl5Z80KPNUpj3XWhDa7oBXfXMDNK2OYMx5qJxMEdbdvt 6Mbw== X-Gm-Message-State: AIVw110otEWKzNWWynGlUOMtN1u5UAnHYL5UUGD/xfUA2dfGMNuUDsJ1 g6v+glkK2UZzvA== X-Received: by 10.55.198.4 with SMTP id b4mr21993869qkj.200.1500920902903; Mon, 24 Jul 2017 11:28:22 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Eric Blake , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , Markus Armbruster Date: Mon, 24 Jul 2017 15:27:20 -0300 Message-Id: <20170724182751.18261-5-f4bug@amsat.org> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170724182751.18261-1-f4bug@amsat.org> References: <20170724182751.18261-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH for 2.10 04/35] ivshmem: fix incorrect error handling in ivshmem_recv_msg() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 If qemu_chr_fe_read_all() returns -EINTR the do {} statement continues and = the n accumulator used to complete reads upto sizeof(msg) is decremented by 4 (= the value of EINTR on Linux). To avoid that, use simpler if() statements and continue if EINTR occured. hw/misc/ivshmem.c:650:14: warning: Loss of sign in implicit conversion } while (n < sizeof(msg)); ^ Reported-by: Clang Static Analyzer Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Markus Armbruster --- get_maintainer.pl: No maintainers found! hw/misc/ivshmem.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index a58f9ee579..47a015f072 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -642,7 +642,10 @@ static int64_t ivshmem_recv_msg(IVShmemState *s, int *= pfd, Error **errp) do { ret =3D qemu_chr_fe_read_all(&s->server_chr, (uint8_t *)&msg + n, sizeof(msg) - n); - if (ret < 0 && ret !=3D -EINTR) { + if (ret < 0) { + if (ret =3D=3D -EINTR) { + continue; + } error_setg_errno(errp, -ret, "read from server failed"); return INT64_MIN; } --=20 2.13.3