From nobody Fri Oct 18 08:30:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1719929965; cv=none; d=zohomail.com; s=zohoarc; b=Ofcxzsx18+dsHtxH1hX7zyTrQVnpJKMPor0zaJl8kOhH+BOx7Ck5wG3Ay57dXfrinFTU6TuK5rWcY9PKyDgB1vzSs0tnaxFIXSMQUGAKrxC4tR/SxLh/7BlIA3Oh1movxTWIflyDurepjv1vYrpuYucsa0W8auhMOgM0CmEIAQA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1719929965; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=scNChYFZ1BVuw6o3t83CBrfTE58zls/yBMV5gH+83JU=; b=n52pwPtuU2W2377mEJJdcF7F+fTz6A8LRymB1/1Vbe74J8PEVASIDug400qun7J9/pYx9jVLtHPLV2YBPc45hzkx0j5zyQbyOLDE7MVIgGMDET4QP+5hSnGgLAs/CUuNE291TIF2kLixk8wTtdzqn/cA2krIbdx+K5fhm7sCb3E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1719929965559304.7072470884415; Tue, 2 Jul 2024 07:19:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOeCb-0000u4-UJ; Tue, 02 Jul 2024 10:09:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOeCX-0000LP-9M for qemu-devel@nongnu.org; Tue, 02 Jul 2024 10:09:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOeCJ-0008Mw-77 for qemu-devel@nongnu.org; Tue, 02 Jul 2024 10:09:44 -0400 Received: from mail-lf1-f70.google.com (mail-lf1-f70.google.com [209.85.167.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-446-S6acrnn1Ofezw2_9JGVRPw-1; Tue, 02 Jul 2024 10:09:29 -0400 Received: by mail-lf1-f70.google.com with SMTP id 2adb3069b0e04-52ce8969cf1so4160820e87.1 for ; Tue, 02 Jul 2024 07:09:28 -0700 (PDT) Received: from redhat.com ([2a02:14f:1f5:eadd:8c31:db01:9d01:7604]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4256b097b82sm203172225e9.34.2024.07.02.07.09.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jul 2024 07:09:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1719929370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=scNChYFZ1BVuw6o3t83CBrfTE58zls/yBMV5gH+83JU=; b=WppUF3NWkZLO39LZb7ZjpkOm2d47I2kWvSAk9WiWrnvNusqOCxMcRMp3dUwpCRhYnoc/I3 6Ew3sO9fCLtpaaYhsnxQ+bjd0HrXOnvRBFV7V29Maoln5XBizz8AM9tAv4WStdQo/I/XTb D0Enzg1m9NWK0x8iT48O48B8QBROojs= X-MC-Unique: S6acrnn1Ofezw2_9JGVRPw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719929367; x=1720534167; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=scNChYFZ1BVuw6o3t83CBrfTE58zls/yBMV5gH+83JU=; b=BQnkxwN9PpyK/fC/9ULaMDQlmAz5S6fTT+u7Z3L+lQUYYtYt1YruMddjEvxryFOSRl +MlXcyhBFC5T2qijss6Cv9BMnY+MdYLQtbRNvUa+5PxfNq+MCeZv49sykZJ6u4AEJKTe aWZRNZKnRaswgwf4mB2ElzfqYxqeUZ16iNyJhLa88XR5vXNIBq2LZb7y8xbueSqJ3KjM Nw7G7UcqA5G3C9l2kZvw4HURMUTBRwLJCSKmoe7OQL5p8oOZh2YEMF4DvTM6OxMLXafT dq+mSSYW4lhE2TZPptAtJamKKDLMyoZKWhI0lKdCb2TAwtRwg2f++irUFpE4P2tlsKCU DEjA== X-Gm-Message-State: AOJu0YyVm9895PL/xMKutDaCy+yNsglmuPDRz3LEKrpX1DzT5j0EMhA3 /zBnq0h0y77H6sdir+9ZW2OX3TBgv6jXbNZqULm3dEnNljrvhW0y8dYI+rc+O2RHqvdIdaPJQ4A zihFoXv6Udr6NyZmceuEml2X3+Mp52ahSPu+wsOQebmFtQia+s3YmM1X8dzDrjSw87FB6MRvoCy CZqh0nKU7F6bxU4T2hKs0SwLhfcnlboA== X-Received: by 2002:ac2:5df5:0:b0:52e:6fe8:f0f with SMTP id 2adb3069b0e04-52e82672582mr4932280e87.28.1719929367303; Tue, 02 Jul 2024 07:09:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFfZnHNeH4IoN8JQ5dcX1pjgpcdMDb2pFE+QlN8mPQSx9HPLECOCmM51jkKkjmljLmxpg7Ecg== X-Received: by 2002:ac2:5df5:0:b0:52e:6fe8:f0f with SMTP id 2adb3069b0e04-52e82672582mr4932258e87.28.1719929366739; Tue, 02 Jul 2024 07:09:26 -0700 (PDT) Date: Tue, 2 Jul 2024 10:09:24 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Stefano Garzarella , Daniel P =?utf-8?B?LiBCZXJyYW5nw6k=?= , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Stefan Hajnoczi , David Hildenbrand Subject: [PULL 48/91] libvhost-user: fail vu_message_write() if sendmsg() is failing Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent Received-SPF: pass (zohomail.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; Received-SPF: pass client-ip=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1719929967460100003 From: Stefano Garzarella In vu_message_write() we use sendmsg() to send the message header, then a write() to send the payload. If sendmsg() fails we should avoid sending the payload, since we were unable to send the header. Discovered before fixing the issue with the previous patch, where sendmsg() failed on macOS due to wrong parameters, but the frontend still sent the payload which the backend incorrectly interpreted as a wrong header. Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Stefan Hajnoczi Reviewed-by: David Hildenbrand Signed-off-by: Stefano Garzarella Message-Id: <20240618100043.144657-4-sgarzare@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- subprojects/libvhost-user/libvhost-user.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvho= st-user/libvhost-user.c index 53bf1adda6..ea27683dac 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -639,6 +639,11 @@ vu_message_write(VuDev *dev, int conn_fd, VhostUserMsg= *vmsg) rc =3D sendmsg(conn_fd, &msg, 0); } while (rc < 0 && (errno =3D=3D EINTR || errno =3D=3D EAGAIN)); =20 + if (rc <=3D 0) { + vu_panic(dev, "Error while writing: %s", strerror(errno)); + return false; + } + if (vmsg->size) { do { if (vmsg->data) { --=20 MST