From nobody Mon Feb 9 11:02:40 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.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 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1552539639338819.2046486411459; Wed, 13 Mar 2019 22:00:39 -0700 (PDT) Received: from localhost ([127.0.0.1]:56877 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h4ITq-0007tE-Vm for importer@patchew.org; Thu, 14 Mar 2019 01:00:35 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56127) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h4IP1-0004U1-KQ for qemu-devel@nongnu.org; Thu, 14 Mar 2019 00:55:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h4IP0-0007Mh-In for qemu-devel@nongnu.org; Thu, 14 Mar 2019 00:55:35 -0400 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]:39623) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1h4IP0-0007MI-Ac for qemu-devel@nongnu.org; Thu, 14 Mar 2019 00:55:34 -0400 Received: by mail-pg1-x542.google.com with SMTP id h8so3146838pgp.6 for ; Wed, 13 Mar 2019 21:55:34 -0700 (PDT) Received: from localhost.localdomain (97-113-188-82.tukw.qwest.net. [97.113.188.82]) by smtp.gmail.com with ESMTPSA id d9sm16185027pgq.6.2019.03.13.21.55.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Mar 2019 21:55:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+xqsi/guaYA7D3YHKOREkAPcowZW/n5ISz+HVCnkFiA=; b=DieBk48wUTWAq2D11D/aTKBJN0ycVlMybg+DqjwRZnIXmXQGCfHkr+B86ZfFeFs6oe t+qEzKCR8WSjVnoFhEeJbHRlgZBEDggiOfFXwFn0p/5gIGJd5xjNlHZJMW0yvbXvP4rC YR9jC9lXG1zca+vUfxiGeSmFfXBSkVcjwPIep/blWJB6f9XyIpoYwUoS6LjBLtkflBbp 9Uu8DxqmkZG9Idy3eJ2hadiVpvMQkJPtgJU36joHnImRPgHGcU4FTmuv8Kc+VWhwR4fA 0Fn10+OYdLLHrpiTpVFg/Ye2IhtegG3DugPIVwa71b55OoTy4WhyIG8v89dKGCHCTKoB 4t4g== 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:mime-version:content-transfer-encoding; bh=+xqsi/guaYA7D3YHKOREkAPcowZW/n5ISz+HVCnkFiA=; b=WfPQ2zEREOeX38doepNTQHch8GR9IUDYveq396VZc2hB3KOqnGgbkT0Qf8GKibjVEP SBWKpe63EyYEUBnQ77mMQ3n+9PurOht3xZZXcvuL3VKHxx0bkzGdO3jPpjmwboXploh3 LLl3/PGQWJ55YPQSUpoC4mBU1h+0Mla5441QIiA/Uaz3mxWahxwiBSmoZwGVicjnL2Vw /Y1AHXESbCE8XaZnRDwiGV7PAjEHbvDBE72urUVHM2CdlM+O2tccPFF6sdQvG32JZSlM XXc6qtTVhIu4Bw9SnRvxcZYp+lNzld+/NQzU7aNCbdhA5BxwKviN5kRCjXkdIQpOEAad UHBw== X-Gm-Message-State: APjAAAUNj/pGEcO8ASTHd81Ujy54S2rhmW5V5/4HzbS825esYxG91TSo 3Jc6qkOi+5eQ8xaB75YE4hWNvG6XgtE= X-Google-Smtp-Source: APXvYqwaYsXbxLAmuZYvw7lA8TXbJrhCnmU66+R7UUcuSoFPeZQjtcZw+CpD1Pt4omL4WHP5XtfQdg== X-Received: by 2002:a17:902:29ca:: with SMTP id h68mr5189804plb.297.1552539332912; Wed, 13 Mar 2019 21:55:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 13 Mar 2019 21:55:15 -0700 Message-Id: <20190314045526.13342-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190314045526.13342-1-richard.henderson@linaro.org> References: <20190314045526.13342-1-richard.henderson@linaro.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:4864:20::542 Subject: [Qemu-devel] [PATCH v2 03/14] crypto: Do not fail for EINTR during qcrypto_random_bytes 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) We can always get EINTR for read; /dev/urandom is no exception. Clean up return paths and avoid unnecessary goto. Cc: Daniel P. Berrang=C3=A9 Signed-off-by: Richard Henderson Reviewed-by: Daniel P. Berrang=C3=A9 --- crypto/random-platform.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/crypto/random-platform.c b/crypto/random-platform.c index f995fc0ef1..0866f216dc 100644 --- a/crypto/random-platform.c +++ b/crypto/random-platform.c @@ -65,29 +65,22 @@ int qcrypto_random_bytes(uint8_t *buf G_GNUC_UNUSED, "Unable to read random bytes"); return -1; } - - return 0; #else - int ret =3D -1; - int got; - while (buflen > 0) { - got =3D read(fd, buf, buflen); - if (got < 0) { - error_setg_errno(errp, errno, - "Unable to read random bytes"); - goto cleanup; - } else if (!got) { - error_setg(errp, - "Unexpected EOF reading random bytes"); - goto cleanup; + ssize_t got =3D read(fd, buf, buflen); + if (unlikely(got <=3D 0)) { + if (got =3D=3D 0) { + error_setg(errp, "Unexpected EOF reading random bytes"); + return -1; + } else if (errno !=3D EINTR) { + error_setg_errno(errp, errno, "Unable to read random bytes= "); + return -1; + } + } else { + buflen -=3D got; + buf +=3D got; } - buflen -=3D got; - buf +=3D got; } - - ret =3D 0; - cleanup: - return ret; #endif + return 0; } --=20 2.17.1