From patchwork Wed Jan 20 17:44:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Bulekov X-Patchwork-Id: 1429373 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=bushare.onmicrosoft.com header.i=@bushare.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-bushare-onmicrosoft-com header.b=Te7TTPAt; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DLY374F40z9sCD for ; Thu, 21 Jan 2021 04:50:43 +1100 (AEDT) Received: from localhost ([::1]:51014 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l2Hcv-0005eQ-I0 for incoming@patchwork.ozlabs.org; Wed, 20 Jan 2021 12:50:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53252) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2HXn-0001UK-HV for qemu-devel@nongnu.org; Wed, 20 Jan 2021 12:45:26 -0500 Received: from mail-bn8nam12on2129.outbound.protection.outlook.com ([40.107.237.129]:51169 helo=NAM12-BN8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2HXk-0003o3-5Z for qemu-devel@nongnu.org; Wed, 20 Jan 2021 12:45:22 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MWcflrH40+gRexaDuUL22YZExdNBo4X92NlMKQhcUj9tQrKxJNzdZ7dkuJ8lQKIp6zqaLkDrhK2anOY4eCir6DxT14dJHG1mQ9iwf+Tnp/qI9USksDRQ+vFLZXz+FpLKwP5MqmTju/6GAO05OvpoSZA2/pMHhBLvqdB8aJDpDd2w73BpjrEhqA6Rb0pdw7gYJyZSVt1wj6g9mSdgeY3KJoLPhlgjbUfuyvpkokg2uzdVrDaJgUXE9TpfwMELLjPnpsTwrmdKCUtICJtjRtXcOPjd103MLhMQp8BNdE8owofjHf0SkF475ydWquwzhAtim28F25rr1C4Dy/SBI7Lkww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=odkLeuyb4jU44XNZPCmqJU85iReGUgnlk/lWg/omeCM=; b=l9kwkBWr1p8lhqWinc4FK0WVcZ27pAMDmimyYaNVlaONofqT4CF7jRCLDq0ZfuuddIudmQ/4st4hYV4uGQsmejUC+k+YORIfofzMrcBkXVHgvg8ajmzzdmQhglZiZfTm3ppvi5AZwYYJ2cH1nGGr/n86pnyLbIQtnU5fGy/5kmPfOFzP7iFyx5ijaVkpqFJZIcFnRDXKQJXoa9dYYd5tEY/pHBOcMMHfNy1E4OKDea15X+BT5bkwvtk4X1cCnOvN/xCd1pNgLgMoiW0v1qwI5BxiWhubc0PEf5hHQgmgOurmZS2MYLMa9KBCpMuGSCilu6U4vJ8JSmXSEqejzIFuVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bu.edu; dmarc=pass action=none header.from=bu.edu; dkim=pass header.d=bu.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bushare.onmicrosoft.com; s=selector2-bushare-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=odkLeuyb4jU44XNZPCmqJU85iReGUgnlk/lWg/omeCM=; b=Te7TTPAtXCqwMVfa0Za7OHIbQ4wEm9y7ai+6GidbICnh2mqwWOW7R2z0YWPK0twdF9QsM/v1de1ZLIDOz8iP+efhGl9ixyjGNDgH0fNzy/qEJCOMszMO5EQlviyd+2d+PdcbjMeqAbAIK6FC1riKfaBK8agqGSysT1zppUihH5E= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=bu.edu; Received: from SN6PR03MB3871.namprd03.prod.outlook.com (2603:10b6:805:6d::32) by SA2PR03MB5835.namprd03.prod.outlook.com (2603:10b6:806:113::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.12; Wed, 20 Jan 2021 17:45:10 +0000 Received: from SN6PR03MB3871.namprd03.prod.outlook.com ([fe80::e828:cd84:e00c:6310]) by SN6PR03MB3871.namprd03.prod.outlook.com ([fe80::e828:cd84:e00c:6310%6]) with mapi id 15.20.3784.012; Wed, 20 Jan 2021 17:45:10 +0000 From: Alexander Bulekov To: qemu-devel@nongnu.org Subject: [PULL 2/7] fuzz: refine the ide/ahci fuzzer configs Date: Wed, 20 Jan 2021 12:44:51 -0500 Message-Id: <20210120174456.275312-3-alxndr@bu.edu> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20210120174456.275312-1-alxndr@bu.edu> References: <20210120174456.275312-1-alxndr@bu.edu> X-Originating-IP: [72.74.210.193] X-ClientProxiedBy: BL0PR05CA0005.namprd05.prod.outlook.com (2603:10b6:208:91::15) To SN6PR03MB3871.namprd03.prod.outlook.com (2603:10b6:805:6d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from stormtrooper.vrmnet (72.74.210.193) by BL0PR05CA0005.namprd05.prod.outlook.com (2603:10b6:208:91::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.5 via Frontend Transport; Wed, 20 Jan 2021 17:45:10 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f985081e-ea9c-4d0c-0231-08d8bd6b221d X-MS-TrafficTypeDiagnostic: SA2PR03MB5835: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XbDGOkwg9sRh8xmHEIMXa74glDES7gJ5buqR3dvre97ydJbNa9kWWBq7VUtnkqJHmyWRQw0qpbMV6r0Ryu+3V5P9HeOCGJuFxy79Q8mSgZewuMwCkkDvTzKhSxsEtVxx323o7qf3OmdvvhinYJbgxiDV20e3FsY3vphD3OD/AeyFFZTCFU2OOcg1Ylha9PxF7YICfENxZHkfYpmatffjNVbGMw5q05NxYdBq2seq30wmh3uTUbF31xpMHtIez0DRgY9Vm5FVd9r3WHXtK48cbFSSjadFcaKD4gXgBd/JMKDYeWyvNEmNLzJo3fvkZ+s2OuE6H5S8QMI0TOH3zqbuWGpRlyIxwbYKaiOj8BnnOAkx/TKGRUNfmGUqoO+CI2pfD1XrTTOEIHRyD7UdhgTmNSlCPVoFmAWaQHsDArdJHyCkF6XiHbjauU5QjkrsLYH1nYyMj64tQfXoHilY83VEITXK8nCeS+DUco0tOGdXET1GK/U2BAL3Mt/1TAAa2kmvZQsKJG8n2lve7Vg/gWOyCA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR03MB3871.namprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(376002)(346002)(396003)(39860400002)(8676002)(52116002)(4326008)(2616005)(6512007)(6666004)(956004)(54906003)(75432002)(83380400001)(6486002)(5660300002)(16526019)(186003)(1076003)(6506007)(26005)(8936002)(478600001)(6916009)(316002)(786003)(66946007)(66556008)(66476007)(36756003)(86362001)(2906002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: F4v5qRClP+msZOMGxiqji5BfIc7jz6e84yKIpsIGQwgK/Rr55KA1QY0uQ4Z89ltcbHub3eaOLYQ85nZk1KAcaelJsvtZ5roDW47WpJu6mNlr7s74lWvRrBtJ81xFpVUI4J/RteNuOTwFXOkSteGoqCVPcaUq6XUpxm+Z5Ze3SNBd2hjYJy+RNQs1awcejJdnNtd16ckTiL+8GqSn+shI7ro7qDgW9epjJ/Ck1HUgB4+9BuTBAv68vEOB84P729PBYP0cFur/kdQ92292hzR2vbfylDr0cg75+RG/bvh1FmgpKl9JXPsGJHIDaS6VUoqmQ09TFkTpcQMCB3kc0KHkzy3a6LIiL4wCgeVSQbay+qBMlDjLJLq2Xu16maiSac1IE+8lkBryPto96/rCqoFVuWxcV+4ROmwqaBOoTh6If9x6s0PJfQytxdm+C9zSfySbsN3cnCSRvxMBKAxqGWANn7EZrLArNnzmsmelankeTpyj6qlIrsD/v4DdvP9sf2DauVdOvNth3lZCbjWJ2MGzAhO2IuwAMTGU/ZrTfeBGl+Va9R3u0HLpwohAA/uw83B+Iadq3JlVvrN+UWakyI/q5IC9JlSZQi5rXIYYq7x1U2HLREghwX0mnqOasmJc4mVAPBuwA7CcUf/MvmldQqUYj4NZE/eEs/yISo/+pWY9cqD0a3KKWAwpA/CbgSTV9vMP+BYyvtj+8Ab1xj57RxBWbYs2Gv5yoHHm/a9glKsBFv+5/7h329cd7TYXCnYMIvS88UHqIzPEj6AQhW0h2pnWZW5Y/ryYG0QpPurhZflidzf+I5IFw+TIBFUgL1oyvY4rPsiXq1DJM2RKuzW2n3oiKC+tykV0dwIvIhoZdBRNJg4G1Ucm7id+hb8SlYpwiK64NrWkdZTaZrZLgeYH7Q3GDXDqbpCM1ZOgFs/9F/f+yB2+GPm9qJsAXfj9VMg4zeM6v31Ak6UbUu5YTXzMTFHsMOKOAU70gYOR+V/YmUqZnScBf9Iae7go+2564NybpSrH X-OriginatorOrg: bu.edu X-MS-Exchange-CrossTenant-Network-Message-Id: f985081e-ea9c-4d0c-0231-08d8bd6b221d X-MS-Exchange-CrossTenant-AuthSource: SN6PR03MB3871.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2021 17:45:10.7660 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d57d32cc-c121-488f-b07b-dfe705680c71 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MeQGiLNdi8+G5SQcIx5UxeDHUX6VhNiv4p7jIzajp76DsVi6WUNu9uDJujbvGSBB X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5835 Received-SPF: pass client-ip=40.107.237.129; envelope-from=alxndr@bu.edu; helo=NAM12-BN8-obe.outbound.protection.outlook.com X-Spam_score_int: -8 X-Spam_score: -0.9 X-Spam_bar: / X-Spam_report: (-0.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.998, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Darren Kenny , Alexander Bulekov Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Disks work differently depending on the x86 machine type (SATA vs PATA). Additionally, we should fuzz the atapi code paths, which might contain vulnerabilities such as CVE-2020-29443. This patch adds hard-disk and cdrom generic-fuzzer configs for both the pc (PATA) and q35 (SATA) machine types. Signed-off-by: Alexander Bulekov Reviewed-by: Darren Kenny --- tests/qtest/fuzz/generic_fuzz_configs.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tests/qtest/fuzz/generic_fuzz_configs.h b/tests/qtest/fuzz/generic_fuzz_configs.h index 7fed035345..aa4c03f1ae 100644 --- a/tests/qtest/fuzz/generic_fuzz_configs.h +++ b/tests/qtest/fuzz/generic_fuzz_configs.h @@ -85,10 +85,28 @@ const generic_fuzz_config predefined_configs[] = { .objects = "intel-hda", },{ .name = "ide-hd", + .args = "-machine pc -nodefaults " + "-drive file=null-co://,if=none,format=raw,id=disk0 " + "-device ide-hd,drive=disk0", + .objects = "*ide*", + },{ + .name = "ide-atapi", + .args = "-machine pc -nodefaults " + "-drive file=null-co://,if=none,format=raw,id=disk0 " + "-device ide-cd,drive=disk0", + .objects = "*ide*", + },{ + .name = "ahci-hd", .args = "-machine q35 -nodefaults " "-drive file=null-co://,if=none,format=raw,id=disk0 " "-device ide-hd,drive=disk0", - .objects = "ahci*", + .objects = "*ahci*", + },{ + .name = "ahci-atapi", + .args = "-machine q35 -nodefaults " + "-drive file=null-co://,if=none,format=raw,id=disk0 " + "-device ide-cd,drive=disk0", + .objects = "*ahci*", },{ .name = "floppy", .args = "-machine pc -nodefaults -device floppy,id=floppy0 " From patchwork Wed Jan 20 17:35:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Bulekov X-Patchwork-Id: 1429369 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=bushare.onmicrosoft.com header.i=@bushare.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-bushare-onmicrosoft-com header.b=xwV2E+41; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DLY0Z6n9cz9sCD for ; Thu, 21 Jan 2021 04:48:30 +1100 (AEDT) Received: from localhost ([::1]:44944 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l2Ham-00035F-T9 for incoming@patchwork.ozlabs.org; Wed, 20 Jan 2021 12:48:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:51582) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2HPk-0000TD-Az for qemu-devel@nongnu.org; Wed, 20 Jan 2021 12:37:05 -0500 Received: from mail-co1nam11on2129.outbound.protection.outlook.com ([40.107.220.129]:63396 helo=NAM11-CO1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2HPh-0002uY-R2 for qemu-devel@nongnu.org; Wed, 20 Jan 2021 12:37:04 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fByLCGqlc7FzfhWTDYls5oHOHqpCUNlNo0rBLUTWArtD6hp/94dEMlhtzKDb3Ul7DrBq6ATrkrUnqTzywcYGSfOFnUQVDKvJpq2WePdo2nYycZx467y/s9p1jSO5yw6I9wNW1GIKltRR+peOTPrU/vsmxo0a4V+4JCwv+VSaI8SIftt6YDd6cyb0ZuNZRRqoEKQ8ClFuAPzrbbN0WvNckNvllwehMTfvbfbMv4ac9XlsVZs7BCzQWIJTltmpxSZ/gRnPs8hFAzMXHPVnRaItLjVFZRJvuPpnRwBJ2ijXAp2tPOX3W4Kgdx2/RUf9k3viw6a/zR+8YiH4TmPJz3l0pQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8sJumVbc3wCRn+fwKCG51zJBCewo2D16ePtBtR3T2MI=; b=Pnjz/P75FnkuaiiWYcBvus4m7WqMvOwG+wZHlcDkE58nZy4ELr5PNoFf3Jjjc+Adf/PePt2cX7i8mIVUfjsuDqstPxx40GxVVY0jcffN0GXjOK6d/zOVqAPQL+C5WPoQ/O1Jci4+hje0FKigGC4SqiILwZSSADKy+8/rA7F/GhEa1qrDsqluTQKpcLfu1ky3KAl9xqDm/88jB7B/TIaTV8/Ar6cTWg0A52eN+/bvQWQBntCoZq1zr6Ek8DHUcYUq28snWWuziz88dmKx4Koh55UbbrZkmefFL2gp6yJQZJp+Ru+y3gTNKl1m5kkLKOhqpiHlVz+jfylIMvGdinS0gA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bu.edu; dmarc=pass action=none header.from=bu.edu; dkim=pass header.d=bu.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bushare.onmicrosoft.com; s=selector2-bushare-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8sJumVbc3wCRn+fwKCG51zJBCewo2D16ePtBtR3T2MI=; b=xwV2E+41bS8HSRDm+w2syTE2SaCCJCjR6ssNFoIspRZQXY53KkhNfV9/0yF6FIR7U411hMWo8k61wzmvYnT7Fe7qWc6sn1oxaqQ35WGlEQo4MqwZF/lLBdRPf6Rb8fwavfEnz4DKg3Y+6f/Yluct4TgLDc3HIFVOhFFGDYaUjq0= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=bu.edu; Received: from SN6PR03MB3871.namprd03.prod.outlook.com (2603:10b6:805:6d::32) by SN6PR03MB4576.namprd03.prod.outlook.com (2603:10b6:805:102::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.11; Wed, 20 Jan 2021 17:36:56 +0000 Received: from SN6PR03MB3871.namprd03.prod.outlook.com ([fe80::e828:cd84:e00c:6310]) by SN6PR03MB3871.namprd03.prod.outlook.com ([fe80::e828:cd84:e00c:6310%6]) with mapi id 15.20.3784.012; Wed, 20 Jan 2021 17:36:56 +0000 From: Alexander Bulekov To: qemu-devel@nongnu.org Subject: [PULL 6/7] fuzz: ignore address_space_map is_write flag Date: Wed, 20 Jan 2021 12:35:34 -0500 Message-Id: <20210120173536.265601-13-alxndr@bu.edu> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20210120173536.265601-1-alxndr@bu.edu> References: <20210120173536.265601-1-alxndr@bu.edu> X-Originating-IP: [72.74.210.193] X-ClientProxiedBy: BL1PR13CA0142.namprd13.prod.outlook.com (2603:10b6:208:2bb::27) To SN6PR03MB3871.namprd03.prod.outlook.com (2603:10b6:805:6d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from stormtrooper.vrmnet (72.74.210.193) by BL1PR13CA0142.namprd13.prod.outlook.com (2603:10b6:208:2bb::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.8 via Frontend Transport; Wed, 20 Jan 2021 17:36:54 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5f7f26ec-8043-4743-f406-08d8bd69fb0e X-MS-TrafficTypeDiagnostic: SN6PR03MB4576: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: K39u/dRwPiWHnjGR3ga6jztcJWFmudpaZiIdG3TUjJUX1YxMlk8sf9ttt4ngAk6m7mtI61hvz4TJphupM8EQADOd8Dbi3GfBw35xSS0ce4F63xdsom6eBQgx8528ORJ9LM+OltsQrmRm1Bwj941PhvOWd9mj3R3vbdSamP0WBSG1ggT7DO1Fivy2Yz4oT81zXycd7DsR8LdQKdByC6AdbYoN9DMImDHYYbOgEuFYLzevJlRj+5e3t/VR/2tdnCYgNo59CU2Ba+HVDuzSuVW6881IGhkNPI6PFKZdUmLiGk8NCoSumWHWiabqTtL5jFRUdISYcyhaTmwY/6+09+2hC8zmTO4Uuume8NOBojGaHrMHN2WfXda8JwHf3y/VzeQNiqFEvVccGMe12dBasisMYGCMVP/e/3bMRLU2cMuc7V59EACrmx/Xtjw5jfWsw7Cym8l3GiKsjgatop34hVUAfA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR03MB3871.namprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(39860400002)(136003)(376002)(346002)(83380400001)(6486002)(26005)(2616005)(8676002)(966005)(52116002)(4326008)(6506007)(6512007)(86362001)(54906003)(5660300002)(2906002)(66556008)(66946007)(66476007)(75432002)(956004)(36756003)(6916009)(316002)(786003)(186003)(8936002)(478600001)(1076003)(6666004)(16526019); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: NFBugDsZDZ2EOWoEYTKZeJ9UV9VRgwhanyaNYyfiUiSNTEEtohsETh1JIPBlsLETtwW04xy7eC1RyA+FKm5Iz0NjGqtg8tV7sV2y6Mgjo8SJhJVrByJ8lW1xtfST7YRs7CdqmA28VO/PhMmKH1sep2jfBivAndQ7MojLn/QzggLjeAM/qxtW1yYkodAb45SRgJ8Aq/BOy8P3XcNBf1rhDTtYkaZyPrG/w5vubjzEhSVWNblbXke2HbwRat7UTnPADSnMMJCf21nKk8WsyUX93TrJch7vDPf2GvvIGTyUGQh7TTgHZsmp6uQ7NFA3jFO/5rPs2+Fei05D2N7O/D2IV5MzLckNu67VPD1XEmDvaUrhZ0sigTg1wabjB941WvcZThGJScNajKILVPM1MBOCAYpjL3h2gu9ZqGLGNDB6HJurL4cSd5V4SWoJRGuWZYcI978bjcAp7jOqBFHLL0Fl0b0ZxQsH9vKl9/sYLgGJVbjEmGs5bQuHC0VKApyOyBwoBj33vxaUOU7JZfn1meR0UEqiz1Kqr4zpUjKzgcEN3mfq+dyNlXL1+Q9US2fXToCTu978jtnZXlXXaCNSo7Fy6I5qpUY19zOhxuj3tZdOSvQWpu54HUpvjBdWf+pvZgTkB97nwCnysRhT0gBligNAgGJfy9aRgbGz7c18lpzbip3B6LytpJ7UDaV7Ocha19LwEuYD/dizEk99vYlZ9ec3s3Wm0uJYP58d9AAW57jKKMeiDqJB336TG/PiQdRttHVANLnFrOksDH5WHZTQ2cW+mXEICjpl3y5M73StU5e8+z30WaIessfAmWKVZ4MrnMaMOBItLrkQhcWTpPQyw7T05WGq23lEFydyhJ1zi1BUQFZls/XFxmaXIPLMxQ+MmtBPdr4daMhQKn1w8mX5e3H1XWtaC7zm5Z2GsdVq5xcAqtTdR8lGTg7zkO9GE/aQQr4M7XrazztUBCHksjS/1yzfLmmk/g2fDt0Re5BsndZcWnKxFQwtiY9fe4gW9Miea14Q X-OriginatorOrg: bu.edu X-MS-Exchange-CrossTenant-Network-Message-Id: 5f7f26ec-8043-4743-f406-08d8bd69fb0e X-MS-Exchange-CrossTenant-AuthSource: SN6PR03MB3871.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2021 17:36:55.7290 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d57d32cc-c121-488f-b07b-dfe705680c71 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: epI6J3Q2rIJLkSXChoVSNVVty5jD2O4mfGNSHDOEhTPngS2gE15JdD8CheT9xoPh X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR03MB4576 Received-SPF: pass client-ip=40.107.220.129; envelope-from=alxndr@bu.edu; helo=NAM11-CO1-obe.outbound.protection.outlook.com X-Spam_score_int: -8 X-Spam_score: -0.9 X-Spam_bar: / X-Spam_report: (-0.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.998, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , Peter Maydell , Thomas Huth , Alexander Bulekov , Darren Kenny , Bandan Das , Stefan Hajnoczi , Paolo Bonzini Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We passed an is_write flag to the fuzz_dma_read_cb function to differentiate between the mapped DMA regions that need to be populated with fuzzed data, and those that don't. We simply passed through the address_space_map is_write parameter. The goal was to cut down on unnecessarily populating mapped DMA regions, when they are not read from. Unfortunately, nothing precludes code from reading from regions mapped with is_write=true. For example, see: https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg04729.html This patch removes the is_write parameter to fuzz_dma_read_cb. As a result, we will fill all mapped DMA regions with fuzzed data, ignoring the specified transfer direction. Signed-off-by: Alexander Bulekov Reviewed-by: Darren Kenny --- include/exec/memory.h | 8 +++----- include/exec/memory_ldst_cached.h.inc | 6 +++--- memory_ldst.c.inc | 8 ++++---- softmmu/memory.c | 5 ++--- softmmu/physmem.c | 4 ++-- tests/qtest/fuzz/generic_fuzz.c | 9 +++------ 6 files changed, 17 insertions(+), 23 deletions(-) diff --git a/include/exec/memory.h b/include/exec/memory.h index 521d9901d7..0f89787de2 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -45,13 +45,11 @@ DECLARE_OBJ_CHECKERS(IOMMUMemoryRegion, IOMMUMemoryRegionClass, #ifdef CONFIG_FUZZ void fuzz_dma_read_cb(size_t addr, size_t len, - MemoryRegion *mr, - bool is_write); + MemoryRegion *mr); #else static inline void fuzz_dma_read_cb(size_t addr, size_t len, - MemoryRegion *mr, - bool is_write) + MemoryRegion *mr) { /* Do Nothing */ } @@ -2504,7 +2502,7 @@ address_space_read_cached(MemoryRegionCache *cache, hwaddr addr, void *buf, hwaddr len) { assert(addr < cache->len && len <= cache->len - addr); - fuzz_dma_read_cb(cache->xlat + addr, len, cache->mrs.mr, false); + fuzz_dma_read_cb(cache->xlat + addr, len, cache->mrs.mr); if (likely(cache->ptr)) { memcpy(buf, cache->ptr + addr, len); return MEMTX_OK; diff --git a/include/exec/memory_ldst_cached.h.inc b/include/exec/memory_ldst_cached.h.inc index 01efad62de..7bc8790d34 100644 --- a/include/exec/memory_ldst_cached.h.inc +++ b/include/exec/memory_ldst_cached.h.inc @@ -28,7 +28,7 @@ static inline uint32_t ADDRESS_SPACE_LD_CACHED(l)(MemoryRegionCache *cache, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { assert(addr < cache->len && 4 <= cache->len - addr); - fuzz_dma_read_cb(cache->xlat + addr, 4, cache->mrs.mr, false); + fuzz_dma_read_cb(cache->xlat + addr, 4, cache->mrs.mr); if (likely(cache->ptr)) { return LD_P(l)(cache->ptr + addr); } else { @@ -40,7 +40,7 @@ static inline uint64_t ADDRESS_SPACE_LD_CACHED(q)(MemoryRegionCache *cache, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { assert(addr < cache->len && 8 <= cache->len - addr); - fuzz_dma_read_cb(cache->xlat + addr, 8, cache->mrs.mr, false); + fuzz_dma_read_cb(cache->xlat + addr, 8, cache->mrs.mr); if (likely(cache->ptr)) { return LD_P(q)(cache->ptr + addr); } else { @@ -52,7 +52,7 @@ static inline uint32_t ADDRESS_SPACE_LD_CACHED(uw)(MemoryRegionCache *cache, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { assert(addr < cache->len && 2 <= cache->len - addr); - fuzz_dma_read_cb(cache->xlat + addr, 2, cache->mrs.mr, false); + fuzz_dma_read_cb(cache->xlat + addr, 2, cache->mrs.mr); if (likely(cache->ptr)) { return LD_P(uw)(cache->ptr + addr); } else { diff --git a/memory_ldst.c.inc b/memory_ldst.c.inc index 2fed2de18e..b56e961967 100644 --- a/memory_ldst.c.inc +++ b/memory_ldst.c.inc @@ -42,7 +42,7 @@ static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, MO_32 | devend_memop(endian), attrs); } else { /* RAM case */ - fuzz_dma_read_cb(addr, 4, mr, false); + fuzz_dma_read_cb(addr, 4, mr); ptr = qemu_map_ram_ptr(mr->ram_block, addr1); switch (endian) { case DEVICE_LITTLE_ENDIAN: @@ -111,7 +111,7 @@ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, MO_64 | devend_memop(endian), attrs); } else { /* RAM case */ - fuzz_dma_read_cb(addr, 8, mr, false); + fuzz_dma_read_cb(addr, 8, mr); ptr = qemu_map_ram_ptr(mr->ram_block, addr1); switch (endian) { case DEVICE_LITTLE_ENDIAN: @@ -177,7 +177,7 @@ uint32_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, r = memory_region_dispatch_read(mr, addr1, &val, MO_8, attrs); } else { /* RAM case */ - fuzz_dma_read_cb(addr, 1, mr, false); + fuzz_dma_read_cb(addr, 1, mr); ptr = qemu_map_ram_ptr(mr->ram_block, addr1); val = ldub_p(ptr); r = MEMTX_OK; @@ -215,7 +215,7 @@ static inline uint32_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL, MO_16 | devend_memop(endian), attrs); } else { /* RAM case */ - fuzz_dma_read_cb(addr, 2, mr, false); + fuzz_dma_read_cb(addr, 2, mr); ptr = qemu_map_ram_ptr(mr->ram_block, addr1); switch (endian) { case DEVICE_LITTLE_ENDIAN: diff --git a/softmmu/memory.c b/softmmu/memory.c index 333e1ed7b0..4fc0071dcd 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -1440,7 +1440,7 @@ MemTxResult memory_region_dispatch_read(MemoryRegion *mr, unsigned size = memop_size(op); MemTxResult r; - fuzz_dma_read_cb(addr, size, mr, false); + fuzz_dma_read_cb(addr, size, mr); if (!memory_region_access_valid(mr, addr, size, false, attrs)) { *pval = unassigned_mem_read(mr, addr, size); return MEMTX_DECODE_ERROR; @@ -3282,8 +3282,7 @@ void memory_region_init_rom_device(MemoryRegion *mr, #ifdef CONFIG_FUZZ void __attribute__((weak)) fuzz_dma_read_cb(size_t addr, size_t len, - MemoryRegion *mr, - bool is_write) + MemoryRegion *mr) { } #endif diff --git a/softmmu/physmem.c b/softmmu/physmem.c index 6301f4f0a5..5aaec2f2c1 100644 --- a/softmmu/physmem.c +++ b/softmmu/physmem.c @@ -2824,7 +2824,7 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr, stn_he_p(buf, l, val); } else { /* RAM case */ - fuzz_dma_read_cb(addr, len, mr, false); + fuzz_dma_read_cb(addr, len, mr); ram_ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false); memcpy(buf, ram_ptr, l); } @@ -3185,7 +3185,7 @@ void *address_space_map(AddressSpace *as, memory_region_ref(mr); *plen = flatview_extend_translation(fv, addr, len, mr, xlat, l, is_write, attrs); - fuzz_dma_read_cb(addr, *plen, mr, is_write); + fuzz_dma_read_cb(addr, *plen, mr); ptr = qemu_ram_ptr_length(mr->ram_block, xlat, plen, true); return ptr; diff --git a/tests/qtest/fuzz/generic_fuzz.c b/tests/qtest/fuzz/generic_fuzz.c index 6adf62a5be..ee8c17a04c 100644 --- a/tests/qtest/fuzz/generic_fuzz.c +++ b/tests/qtest/fuzz/generic_fuzz.c @@ -175,7 +175,7 @@ static int memory_access_size(MemoryRegion *mr, unsigned l, hwaddr addr) * generic_fuzz(), avoiding potential race-conditions, which we don't have * a good way for reproducing right now. */ -void fuzz_dma_read_cb(size_t addr, size_t len, MemoryRegion *mr, bool is_write) +void fuzz_dma_read_cb(size_t addr, size_t len, MemoryRegion *mr) { /* Are we in the generic-fuzzer or are we using another fuzz-target? */ if (!qts_global) { @@ -187,14 +187,11 @@ void fuzz_dma_read_cb(size_t addr, size_t len, MemoryRegion *mr, bool is_write) * - We have no DMA patterns defined * - The length of the DMA read request is zero * - The DMA read is hitting an MR other than the machine's main RAM - * - The DMA request is not a read (what happens for a address_space_map - * with is_write=True? Can the device use the same pointer to do reads?) * - The DMA request hits past the bounds of our RAM */ if (dma_patterns->len == 0 || len == 0 || mr != current_machine->ram - || is_write || addr > current_machine->ram_size) { return; } @@ -213,12 +210,12 @@ void fuzz_dma_read_cb(size_t addr, size_t len, MemoryRegion *mr, bool is_write) double_fetch = true; if (addr < region.addr && avoid_double_fetches) { - fuzz_dma_read_cb(addr, region.addr - addr, mr, is_write); + fuzz_dma_read_cb(addr, region.addr - addr, mr); } if (addr + len > region.addr + region.size && avoid_double_fetches) { fuzz_dma_read_cb(region.addr + region.size, - addr + len - (region.addr + region.size), mr, is_write); + addr + len - (region.addr + region.size), mr); } return; } From patchwork Wed Jan 20 17:44:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Bulekov X-Patchwork-Id: 1429393 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=bushare.onmicrosoft.com header.i=@bushare.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-bushare-onmicrosoft-com header.b=ro6uxYUi; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DLYNb69Mwz9sVk for ; Thu, 21 Jan 2021 05:05:49 +1100 (AEDT) Received: from localhost ([::1]:54272 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l2HrW-0002Rz-OC for incoming@patchwork.ozlabs.org; Wed, 20 Jan 2021 13:05:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53460) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2HYI-0001a6-3h for qemu-devel@nongnu.org; Wed, 20 Jan 2021 12:45:55 -0500 Received: from mail-bn8nam12on2129.outbound.protection.outlook.com ([40.107.237.129]:51169 helo=NAM12-BN8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2HYF-0003o3-RC for qemu-devel@nongnu.org; Wed, 20 Jan 2021 12:45:53 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=btHhvtJGQf82T3ydzbxhBZVx20hDsK/w8EBfwZRn6V6ai7t9ryoS4mpGNrOT/yQTDvXeBJ1ruPnRCKeRMnRrlhBV6rgGgZMgS+P+5kYSsN1gLPHEIARI30mIs0PVXKpWXesUpV/pS04OQ5rAET9bEe3b5TCpFNkMLz3+pVS/yfMfyOpOe1vAP8qhUh2mSK4tbrIBtFmQ0HV9N1O58fnV/tEA1BuNvfVXua/f+l69XYEyxukzQmmQNdOdDnFe+DldjwW9R9pwfepbwjhB0dQngywVdkto7C4pMKTOPZUzni88cHgJby0ShadI17VH4+ayh0qUK/4q2B2slNtTrXXx6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Oo6IHh+X4/6fqDol/gGkCwHUM19DBsF5BOSmYYUFXd0=; b=ZsRd9ez9BLBJ/C3U2h1Kim4V9unahS8jDaEdSof0f+PlO8HJYM0xAcEfjtcxQpBZZTuUchFDIuHWr3LEhS4nqaXJfYu7AhuybG8yZBe4Bv6i6rxddDi5Aj8hYhp6MZognVliCHO9w4hPLxatShzg/uFqVxkvbfkJYCioA1P6roc75MN7zgha6/XzTrlGcqpFGE92xUKkJEqxXoCcnH3EL1+BApXVfy8Kc4Ky1YsEja6sbPnL0xWHEoOm5m0UG0V2vTXfyENIufr1/x3TH423mxAMkGMR9cONAdNqrhICoxknsycgsy5WQaG29CoeSQMIvVF2m/SejUGcVxo3GswLDw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bu.edu; dmarc=pass action=none header.from=bu.edu; dkim=pass header.d=bu.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bushare.onmicrosoft.com; s=selector2-bushare-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Oo6IHh+X4/6fqDol/gGkCwHUM19DBsF5BOSmYYUFXd0=; b=ro6uxYUiEY4CCZLhczgsblVLwRqnRLaw1OEX8VRY7cRvt13qMxbLlHnc+eu3uQRPHsmi1x5FL72q5ufX7cUm4pl12kDZ9tPSmNVpJIU0R7RTeBBNjZqXqxVBzKcVmcMB2uENB8NTi99Xs71FDKvewhYFrrES1fi9u8heq2wkBxI= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=bu.edu; Received: from SN6PR03MB3871.namprd03.prod.outlook.com (2603:10b6:805:6d::32) by SA2PR03MB5835.namprd03.prod.outlook.com (2603:10b6:806:113::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.12; Wed, 20 Jan 2021 17:45:25 +0000 Received: from SN6PR03MB3871.namprd03.prod.outlook.com ([fe80::e828:cd84:e00c:6310]) by SN6PR03MB3871.namprd03.prod.outlook.com ([fe80::e828:cd84:e00c:6310%6]) with mapi id 15.20.3784.012; Wed, 20 Jan 2021 17:45:25 +0000 From: Alexander Bulekov To: qemu-devel@nongnu.org Subject: [PULL 7/7] fuzz: add virtio-9p configurations for fuzzing Date: Wed, 20 Jan 2021 12:44:56 -0500 Message-Id: <20210120174456.275312-8-alxndr@bu.edu> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20210120174456.275312-1-alxndr@bu.edu> References: <20210120174456.275312-1-alxndr@bu.edu> X-Originating-IP: [72.74.210.193] X-ClientProxiedBy: BL0PR05CA0005.namprd05.prod.outlook.com (2603:10b6:208:91::15) To SN6PR03MB3871.namprd03.prod.outlook.com (2603:10b6:805:6d::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from stormtrooper.vrmnet (72.74.210.193) by BL0PR05CA0005.namprd05.prod.outlook.com (2603:10b6:208:91::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.5 via Frontend Transport; Wed, 20 Jan 2021 17:45:23 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ba2f4aae-3746-4ae1-a2d5-08d8bd6b29ed X-MS-TrafficTypeDiagnostic: SA2PR03MB5835: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: j2MHnDgbSedh6csFxkfZY/93cfrahdiFXR6XW604OEEi5O/xwEB1tUTqoMmVIE2GsKgDxUo6hcfRPrsUW5wwdqPDneyL35QH5Bt+/BGXQGBGqk+q+jozrdDrixrI617ozTuKWdWR0oEGzW9Xf0aY8fUbcdg+jyMSChUsOXhtnMEm+DRxCmPJcpnVKHvovRqbMsLDlhqTCbUAYH3OLGYrlK5DreK5xN3Y3dNUAbCyoh4DcH3y/Dra4wLWMxNYlF0lHU4XzKX6jdlfXCqIYX6lti46kpKRQ01O0tx2NHogOpKhfTEtyZK2N0MrrcokFP9X0e1/Sh4kE3BZ7sFuaYch+0n16LSqtpw8I/XhiC64REsahhC1h9qVQRQ2VOHbl+EsTNOrABWZMhjgOCYqexq1QaJSVOZBRTjUhlLAMMmDeQ2iQPHQCdiD6trWAggDGcuBl/tY96r9rnVodAlB4e/1RLU5NycBPBWGs5TqbRYoHGB2sdJQAN3o8YAF7g3jQWoCBd+4LJIW5J3KcRqWrWlfQw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR03MB3871.namprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(376002)(346002)(396003)(39860400002)(8676002)(52116002)(4326008)(2616005)(6512007)(6666004)(956004)(54906003)(75432002)(83380400001)(6486002)(5660300002)(16526019)(186003)(1076003)(6506007)(26005)(8936002)(478600001)(6916009)(316002)(786003)(66946007)(66556008)(66476007)(36756003)(86362001)(2906002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: spg1JxQPY07+Eppxnwgv7r93v29lWaDZ//Vjkr2iu35naCUwlOM0QfBWWDo03HqOw7ZxwxEpobvb2t/veQuO7qp7t9m+m3uLCOjc3JeS9hPl34qboRWIJkB578hrJgK5KTBlawWH2rqtncM6b/QavGeje7fO5JN3vV4JlndxLQNX3349nGxsCyhX19L5GuYyFRst7kXFndZBqs4fASKI/zKY4oXkhLpbVSX+7sF7ea0cg6cGcz9DNk2YyYbUSGACWjlBfqNJL9rZh7zC1fZNVVGQDZvqHlIsNpp+g7H6kfizUC++RWRFp6IplXorlDIBylqpHuKcoXbwp9n/RDUY/6KfbG5RzQDF8P1VcUkV/Fx9+b+ywEOzSxILR6vaAI0KvYvJzh6+cEwRl9UJvJ+MnfmmIt6Xg1Z2f/Gq8oPzC7NoOnYv08KH1TSldjCBbrVsXwSaYz5SnXsZpvP4JjtK0OFz4Jx7RS/CQo6FQE4LLZmfp/YaawOc4urCmaqqv8yZ04/5jFWuP36sqexLWWbCN1oSGYK2/oW5zLFsYhwAzuZY5nwQDvRLAwQiTs8D/vjglq50F2EWcS7Ug00W/gXuJYhn1DQe0heC/VUYfZqU2AB/k01JLrr6PE4kv0IA1RZX5L9exKAMWa0SJCnIQk66vzyAdQHMixjcEc//pLuFeImwjLZ9ygVhMpqxODdqSu4KBSiYhxC/800WmO9zSErw4lpjXdtSuNJgI9D42RypjDRqSTfjo0YSiO7l4mp1O4eQwVdoIW2A43X2l6q3ZIT5yaVmLprMlj+rqBRs3Yb6M17lBog0r7ogUreBJ7neFTkJjnnGju0hZi/FXfMhzaGfEbLip5B5cOVyKWbuOHWEd5svkkVNvvy9FEin215tJNVOG/KxXYqw7osmg+oPpRSbxBrahc7aYcLmsZA4uSl8tFteFIgh9BuucXScE6B/DPkrj3M8DN5A8Q7YMZX2HRqcbVBMJ/4wPcDuU99B9/haYu8+oO3JXkLyKterb3G7bNTS X-OriginatorOrg: bu.edu X-MS-Exchange-CrossTenant-Network-Message-Id: ba2f4aae-3746-4ae1-a2d5-08d8bd6b29ed X-MS-Exchange-CrossTenant-AuthSource: SN6PR03MB3871.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2021 17:45:25.0636 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d57d32cc-c121-488f-b07b-dfe705680c71 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: t+xLVY7xyloM9N5EXVPPT25vuzyzBOFlE3cmgyWR3vo7Faw9m52AxK/Vt/sr2Qf2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5835 Received-SPF: pass client-ip=40.107.237.129; envelope-from=alxndr@bu.edu; helo=NAM12-BN8-obe.outbound.protection.outlook.com X-Spam_score_int: -8 X-Spam_score: -0.9 X-Spam_bar: / X-Spam_report: (-0.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.998, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Darren Kenny , Alexander Bulekov Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" virtio-9p devices are often used to expose a virtual-filesystem to the guest. There have been some bugs reported in this device, such as CVE-2018-19364, and CVE-2021-20181. We should fuzz this device This patch adds two virtio-9p configurations: * One with the widely used -fsdev local driver. This driver leaks some state in the form of files/directories created in the shared dir. * One with the synth driver. While it is not used in the real world, this driver won't leak leak state between fuzz inputs. Signed-off-by: Alexander Bulekov Reviewed-by: Darren Kenny --- tests/qtest/fuzz/generic_fuzz_configs.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/qtest/fuzz/generic_fuzz_configs.h b/tests/qtest/fuzz/generic_fuzz_configs.h index 51e69c6e42..5d599765c4 100644 --- a/tests/qtest/fuzz/generic_fuzz_configs.h +++ b/tests/qtest/fuzz/generic_fuzz_configs.h @@ -19,6 +19,16 @@ typedef struct generic_fuzz_config { gchar* (*argfunc)(void); /* Result must be freeable by g_free() */ } generic_fuzz_config; +static inline gchar *generic_fuzzer_virtio_9p_args(void){ + char tmpdir[] = "/tmp/qemu-fuzz.XXXXXX"; + g_assert_nonnull(mkdtemp(tmpdir)); + + return g_strdup_printf("-machine q35 -nodefaults " + "-device virtio-9p,fsdev=hshare,mount_tag=hshare " + "-fsdev local,id=hshare,path=%s,security_model=mapped-xattr," + "writeout=immediate,fmode=0600,dmode=0700", tmpdir); +} + const generic_fuzz_config predefined_configs[] = { { .name = "virtio-net-pci-slirp", @@ -60,6 +70,16 @@ const generic_fuzz_config predefined_configs[] = { .name = "virtio-mouse", .args = "-machine q35 -nodefaults -device virtio-mouse", .objects = "virtio*", + },{ + .name = "virtio-9p", + .argfunc = generic_fuzzer_virtio_9p_args, + .objects = "virtio*", + },{ + .name = "virtio-9p-synth", + .args = "-machine q35 -nodefaults " + "-device virtio-9p,fsdev=hshare,mount_tag=hshare " + "-fsdev synth,id=hshare", + .objects = "virtio*", },{ .name = "e1000", .args = "-M q35 -nodefaults "