From nobody Fri Oct 24 22:15:02 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518702870396246.71347159429592; Thu, 15 Feb 2018 05:54:30 -0800 (PST) Received: from localhost ([::1]:50963 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1emJzZ-0003NH-90 for importer@patchew.org; Thu, 15 Feb 2018 08:54:29 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51066) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1emJxR-0001oI-TU for qemu-devel@nongnu.org; Thu, 15 Feb 2018 08:52:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1emJxN-0000wS-J6 for qemu-devel@nongnu.org; Thu, 15 Feb 2018 08:52:17 -0500 Received: from mail-db5eur01on0116.outbound.protection.outlook.com ([104.47.2.116]:35200 helo=EUR01-DB5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1emJxN-0000ut-8w; Thu, 15 Feb 2018 08:52:13 -0500 Received: from vova-pc.sw.ru (195.214.232.6) by AM5PR0801MB2052.eurprd08.prod.outlook.com (2603:10a6:203:4c::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.506.18; Thu, 15 Feb 2018 13:52:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=RW1cGhDA2wb0ujJUU3v8nnvvV4Z7gXcxQ0u9B1P7Jgs=; b=Zkf01aqm6HfKtb6k2PsRFNZXaM0pKzKsho1b4ML7Ucfvd2t9yykj6gqWIwaq8PW0K9E21l7EdWRejMj2oN5Nggb818jiO4lKPmPu5KYDmgUlUHDdbiPjEM5Q4LwQEmz9yB2rV47oh0xWE4XGSbK55nwTv2wosryVRthvnLQgv50= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=vsementsov@virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-devel@nongnu.org, qemu-block@nongnu.org Date: Thu, 15 Feb 2018 16:51:39 +0300 Message-Id: <1518702707-7077-2-git-send-email-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1518702707-7077-1-git-send-email-vsementsov@virtuozzo.com> References: <1518702707-7077-1-git-send-email-vsementsov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR07CA0005.eurprd07.prod.outlook.com (2603:10a6:7:67::15) To AM5PR0801MB2052.eurprd08.prod.outlook.com (2603:10a6:203:4c::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 33b998b1-f777-480c-8cfb-08d5747b4fd3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:AM5PR0801MB2052; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0801MB2052; 3:sHnc/m2m6WFp8FqrUH+5Q1kHL4AQhebqaePlIkUI6QRrvvYmyriJonbOs5QqMoT8YEp2eykHYvfXAr/bZQthqVykZO40oWCaH5ckM2ouai3EUJlJ1dYkid8rzMlVP0VDoEOSDP8stGuMQnv1T6oYT/7HTqMu0sgK64s1dVU2gzBweQKuMOUXH257OdBeBf4vI66B9sNY281nlhKIUFGeqXiWNHckCpDGm6fBAZbKNr0EwZQ70Fgc1rMDBQDqkvTk; 25:bgmN6M0d+X+sLslp5FsUhl9P6JxGlJCFeTPBpFSJYeaC29Zd+vOhF5j1B9q/CAjEsN9OHs9wDb91Pw/GRdImE3F93dSVVyS86y7Ma0/+SPvV/S+3TErxgJeOo4eiVBI6sWdqZy8/oaO8Lw8HdacYeHtMd/xIPC6R/EHTE0vKHvMy8gg1a/rgEy6ubAQaAa4EajVPubjWdCJfO4JOBNyX74JHTWZs/QXDRPNeaUOeDHPbYMzOH6W4bI2XEj++b3JpS33wgmjbJx7CgXxWIXHYJtV7WxyJetG9lOVFb3rOFsEItid7+rqUGzxa+Ybx/gzxvnylAf5xZQ2TzXNtjXyUUA==; 31:c96EzWBWH+Z59C7a/K3642nTWlJWUwpxlT+932SrCj2D5rYkiUsQwLU3eqYdUCvdwQhN03aDwX4+nP2GxQpn85ME/iWSpPv5V2q6/aR8CuUx5P1oA1A+ipcxCRJ2vGSzp8rXmyibqksajLxP0L2mXvxoXEG240n+mo9ZBXPhBc+Ssw8Qe6x83r9OrLm5CnztGKjT50lKnsp8KBNiMxLutRRDkluVH5JizLDfh7Up3+s= X-MS-TrafficTypeDiagnostic: AM5PR0801MB2052: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0801MB2052; 20:f7/zrmYq8k/maYarfvs34Mg8TSkWUZw17DvXiO/cRcyw/3RftnC8Rvj3tityh0Y7EX6p/gJ7YIJ1SKhJ7zJ4PO111GYr98leBh1nYIOyNKjsb5pzcr1KJubaRRStV3atZ+nMly4RgU3QsngCrD2lDUoXHbmjQnc3dXA32vGqVWZmPUuVNM1t0HPPvanqZTI6p5ejdU3gNcsFCz12Qet/kXSq24jaXmZ//gndiRHsopd2UvwovBxoDfiWx/FFqNE4GzstLEKrZY2/1hjGkTlmMBt/5XuhI/tgmcH0/gxbGo9GxEPQqBEcJQnL5idyu4JTxYyA6xhZxi5nGlTMPliww5arvIZSk3V5nZti+fmixthFggoG0JYIbhkVMqqEiykWpQvIHVoOWCjtNktttDucEcd6YozayRZD2++7+FlKklOdENuaIvwQ52HSprY1ykqZ3mY1D93Ugq4EHzGvSiTVatJpq25wPyQCxs03DcyV1n44TWID+68Y2drkJmV/IR2Y; 4:vwMOhA4xf5KEOxBhcuUV7TdR3tLYqQBR3qudh3pqmIzBgmo/1d1kvdexCWG1sHEFpTCW/WEptxC2a9A9EDJQAE07WGbPpISBbFC1fi/z7LeYwhIITOziPTLVxmVPuiVjtlNUmmwyB0dA09ZBQeQx+wwciExZOZHzROAVjjuktgmmzLPgctJrI+gQkXXRmpa+k8mO1QlwSVwZ3yu3eRGwVQNuNaZ3Z+N0tRuoSyfXf4caoZoGUxDHhiuI6BwUYnc6khRq+CgmRnPY5il/VOX4vXfhACff3qVN6dH8qzPy+QbkzOJceJHZSZ5Boj1m1QH/ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(158342451672863); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(3002001)(3231101)(944501161)(93006095)(93001095)(6041288)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123560045)(6072148)(201708071742011); SRVR:AM5PR0801MB2052; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0801MB2052; X-Forefront-PRVS: 058441C12A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(396003)(39380400002)(376002)(346002)(39840400004)(366004)(189003)(199004)(105586002)(52116002)(305945005)(8676002)(81166006)(26005)(6512007)(51416003)(76176011)(5660300001)(81156014)(53936002)(25786009)(7736002)(97736004)(55236004)(16586007)(69596002)(6506007)(36756003)(47776003)(86362001)(66066001)(316002)(386003)(59450400001)(6486002)(106356001)(68736007)(50226002)(4326008)(53416004)(3846002)(2906002)(8936002)(478600001)(6116002)(16526019)(186003)(107886003)(48376002)(2950100002)(6666003)(50466002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM5PR0801MB2052; H:vova-pc.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; 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; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0801MB2052; 23:WAVEWQzrrHmM2fFosi5qXJGMxUWh3hL02C6ZfRZ?= =?us-ascii?Q?H8iehrjC+vrWBCOPLA3aYZohWZfxKSFRypl0uhCN2vP6UYmfjJW8nwm/Rce9?= =?us-ascii?Q?FkY8nNm4a6KKRg7mbXVDW9LMr1eX3O1ShWFEXjilHztaAJHke/voHVRnk06p?= =?us-ascii?Q?dKMFG3kYp8mmgdlrFSSoDDJ+sCKQb7SIKWvW1+Y6sfM+ilYnPNxt6M3qlX94?= =?us-ascii?Q?sZVF5+9FW70J4PT9LIU56i9dSGmJhFyBzYa4yb25olmH8Lutzem5JRfry/qz?= =?us-ascii?Q?/KeMokXjoUPZ9t1jVClL02rj4hBcLntAwWLygxdE8mt8iTLggYiyGF4tvcLu?= =?us-ascii?Q?/qR5VMuew6/ic6IBX6L0bP7O8Y0d1JGHK8Hp2taO5pjl8GaGAOrNnwXCaJAx?= =?us-ascii?Q?vkNTj4kax7lN+xxAj+ngwvx7Dc5UMWDY1acQOEY1PNnNXRdg+iieupK73rtg?= =?us-ascii?Q?7/vAoqnnnpHF3QhmQXCoKebqHvjysE4/bZYK7Msz/kLQe4uw3sk4JkPIQr8i?= =?us-ascii?Q?7kA+diRIRmHszH2m5jG+Wuv9emTWMh9zLvcHfvW/hrliVJI3Vn66vAOt+EDv?= =?us-ascii?Q?HCV3VDAz26KOPd8+cNRUHx2qNqqwch9IXC9GO/E3sXTBgGnG17XlcQBedGU2?= =?us-ascii?Q?sNvHabZYIGSZwYIyB7c9lUnXvJU/SRBQjjN/ng8COVPFC35fn398bDg9Edhh?= =?us-ascii?Q?NjykJU1wMDAvUKOzTDR92vduhydUeUnZLpb0Gp9y28mZw0wKtEr8uivTfwWv?= =?us-ascii?Q?e/u8r/xl/WsWVbm+x0cnb2ZVuXLVh/vKdz3TdDZQ81tnO9AIsQX8fXKrO92Y?= =?us-ascii?Q?xJRd0R1L2kr8EeGfAW1KPHEK3BYrm88m0zBDdtuQ3DT3bTSCCgTwRZOXetxM?= =?us-ascii?Q?7qIu5sN8lwf7VUtHLVjSROj7/tdn84qzDJvER1KdPgePk/w+3M8IPe9Kjq0U?= =?us-ascii?Q?HLiZzhaxwsrtCekJAGr37UTrbQqhb3lnipuwk2lGAjBiB9QWJ0ACabwaSJu9?= =?us-ascii?Q?qfHktPpC/GBdWYN1B6CZW9yKvCa0XGzxhmOv5G8LGOLYn2JvNDxNDCW1ovvL?= =?us-ascii?Q?5eZF21IGZX68AA5bnnPmpHaYRMmQOhoF/EAs4XHU7btTojkZzwMsh4gMRXAB?= =?us-ascii?Q?tDbe1p6wLmCdz9M9mVS+xpf8SEpOJsFMf1PiaYdZYvNRvnUXyVj6Oi2if7mO?= =?us-ascii?Q?zutbq9+W1l87UYMSM0GYYUDNNH1jsUFuyF6MxYstxw+csC1ZV/ctpPgn5vw?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0801MB2052; 6:m3603ugKkemptuHYYbYi60ATZ5sxD1gHBaAJmE5MEEBid9FfXYF41UNw+VL6qpVSQI2mybIqRICHF+EmqmPLeZhHADpX7yyo1Q2GY+OPGKHBPIailRzkKevBSRf230UglaMSmpSGG8YaK5g0r/6RSXsCNJW7U3KNQHyOZ3/4ko5BIVewe6ooCGaXbcvq/qE5sJYBUHLWiAZuQGJ1y1D2Oc/jr1KoZB/Bm1vwJREOXZORGvaeZuzLP8ljXONAxeGzMh5krM8X9c5U5bAkaKuTjACwSwQJqjdCFRiSiVCckSqAMygXnBGoKOjVCqQuG60uO8Lv3MX1GAZgC1Dis0wLL14nXBJbhXBHJA7LMj21oSU=; 5:c3FPUub0Ap930MuEapE10TMnBh7USy99OjyG8WPtYBes8DJQewfN0wP3idAD4jRj1/oHVi0UqhraFYwRk6d7ZfCBjZyoF6QqyuVvRlCh5obSSQYmq19FLwhENUjU/ugqBOnSrGLatDCx9BrCsm35+xfE8ksBtsDrLKFYr2rOLWY=; 24:xi5jeV1rh+OimlUUqxWfNHoYwkCt75BCCGNX6HGiM2aPGDKAkAnYVQh+LdD90ma3Cr+JK9fSalqRkbTrm8zV2unLgWVneOkWrRj7fsCPFZ4=; 7:GsIq8b8T1HjBHrKrDxmBSXXyJ1H59ZTlJb9fKQGvQ6QJO30WqV0yPV/6RE/W+ZFg5O3PEjA/rJ+9erdKUd8H6cN61zXjRxsDInDJUyzzeNptFxdOPrTpTpRXOJKrEg7f4iKlPSuSGw3zXGpSWndL+cqycYY43VBpmgSLDAT+rU2qsgtkzLm5VydrUyjiC1mQJaiw9i3XNOYs8RDD4hp4PnKn1b2TfhwS55JJ2/3igk0R7bJEAd8oDy7U9OWTjLT/ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM5PR0801MB2052; 20:466C+VYtLLqU4xFLSXSoB9UAbk4ilXkxWJI3SnFVhnjS3wTx+XPqXwJhKu18dSbs03jts22TTr1WMwVMOWeFfYyVwUwnSyoRKwdiIi2yGNKBzCLj/wDUKl4hKov3RITYa+98YkqjatGYjsi9Ytl7Z5oMTNjnG+O5UxkPO1sCFNw= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2018 13:52:10.5919 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 33b998b1-f777-480c-8cfb-08d5747b4fd3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB2052 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.2.116 Subject: [Qemu-devel] [PATCH 1/9] nbd/server: add nbd_opt_invalid helper 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: kwolf@redhat.com, vsementsov@virtuozzo.com, mreitz@redhat.com, den@openvz.org, pbonzini@redhat.com 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 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" NBD_REP_ERR_INVALID is often parameter to nbd_opt_drop and it would be used more in following patches. So, let's add a helper. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Eric Blake --- nbd/server.c | 50 ++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 14 deletions(-) diff --git a/nbd/server.c b/nbd/server.c index 112e3f69df..b9860a6dcf 100644 --- a/nbd/server.c +++ b/nbd/server.c @@ -218,22 +218,46 @@ nbd_negotiate_send_rep_err(NBDClient *client, uint32_= t type, /* Drop remainder of the current option, and send a reply with the * given error type and message. Return -errno on read or write * failure; or 0 if connection is still live. */ -static int GCC_FMT_ATTR(4, 5) -nbd_opt_drop(NBDClient *client, uint32_t type, Error **errp, - const char *fmt, ...) +static int GCC_FMT_ATTR(4, 0) +nbd_opt_vdrop(NBDClient *client, uint32_t type, Error **errp, + const char *fmt, va_list va) { int ret =3D nbd_drop(client->ioc, client->optlen, errp); - va_list va; =20 client->optlen =3D 0; if (!ret) { - va_start(va, fmt); ret =3D nbd_negotiate_send_rep_verr(client, type, errp, fmt, va); - va_end(va); } return ret; } =20 +static int GCC_FMT_ATTR(4, 5) +nbd_opt_drop(NBDClient *client, uint32_t type, Error **errp, + const char *fmt, ...) +{ + int ret; + va_list va; + + va_start(va, fmt); + ret =3D nbd_opt_vdrop(client, type, errp, fmt, va); + va_end(va); + + return ret; +} + +static int GCC_FMT_ATTR(3, 4) +nbd_opt_invalid(NBDClient *client, Error **errp, const char *fmt, ...) +{ + int ret; + va_list va; + + va_start(va, fmt); + ret =3D nbd_opt_vdrop(client, NBD_REP_ERR_INVALID, errp, fmt, va); + va_end(va); + + return ret; +} + /* Read size bytes from the unparsed payload of the current option. * Return -errno on I/O error, 0 if option was completely handled by * sending a reply about inconsistent lengths, or 1 on success. */ @@ -241,9 +265,9 @@ static int nbd_opt_read(NBDClient *client, void *buffer= , size_t size, Error **errp) { if (size > client->optlen) { - return nbd_opt_drop(client, NBD_REP_ERR_INVALID, errp, - "Inconsistent lengths in option %s", - nbd_opt_lookup(client->opt)); + return nbd_opt_invalid(client, errp, + "Inconsistent lengths in option %s", + nbd_opt_lookup(client->opt)); } client->optlen -=3D size; return qio_channel_read_all(client->ioc, buffer, size, errp) < 0 ? -EI= O : 1; @@ -398,9 +422,8 @@ static int nbd_reject_length(NBDClient *client, bool fa= tal, Error **errp) int ret; =20 assert(client->optlen); - ret =3D nbd_opt_drop(client, NBD_REP_ERR_INVALID, errp, - "option '%s' has unexpected length", - nbd_opt_lookup(client->opt)); + ret =3D nbd_opt_invalid(client, errp, "option '%s' has unexpected leng= th", + nbd_opt_lookup(client->opt)); if (fatal && !ret) { error_setg(errp, "option '%s' has unexpected length", nbd_opt_lookup(client->opt)); @@ -438,8 +461,7 @@ static int nbd_negotiate_handle_info(NBDClient *client,= uint16_t myflags, } be32_to_cpus(&namelen); if (namelen >=3D sizeof(name)) { - return nbd_opt_drop(client, NBD_REP_ERR_INVALID, errp, - "name too long for qemu"); + return nbd_opt_invalid(client, errp, "name too long for qemu"); } rc =3D nbd_opt_read(client, name, namelen, errp); if (rc <=3D 0) { --=20 2.11.1