From mboxrd@z Thu Jan 1 00:00:00 1970 From: f4da1594@opayq.com Subject: Delivery Status Notification (Delay) Date: Fri, 14 Apr 2017 11:17:05 -0700 (PDT) Message-ID: <771113240.70927.1492193825522.JavaMail.root@smtp4.opayq.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4767691538810872858==" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --===============4767691538810872858== Content-Type: multipart/report; boundary=001a11429e26e14d2a054d2472df; report-type=delivery-status --001a11429e26e14d2a054d2472df Content-Type: multipart/related; boundary=001a11429e26e14dc0054d2472e0 --001a11429e26e14dc0054d2472e0 Content-Type: multipart/alternative; boundary=001a11429e26e14dc5054d2472e1 --001a11429e26e14dc5054d2472e1 Content-Type: text/plain; charset=UTF-8 ** Delivery incomplete ** There was a temporary problem delivering your message to curtiskwong9@gmail.com. Gmail will retry for 21 more hours. You'll be notified if the delivery fails permanently. The response was: Receive rate too high --001a11429e26e14dc5054d2472e1 Content-Type: text/html; charset=UTF-8 --001a11429e26e14dc5054d2472e1-- --001a11429e26e14dc0054d2472e0 Content-Type: image/png; name="icon.png" Content-Disposition: attachment; filename="icon.png" Content-Transfer-Encoding: base64 Content-ID: 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 --001a11429e26e14dc0054d2472e0-- --001a11429e26e14d2a054d2472df Content-Type: message/delivery-status Reporting-MTA: dns; googlemail.com Received-From-MTA: dns; FWD-737QHYSMHVAYQAUCAOIQBDAAGAQLMA2YAMHECCJDLIBAYAWYAKIAZAQHSMCCWMBLIA4UANQUEIGCIMBKMAZUZ4AAEAACA===@opayq.com Arrival-Date: Wed, 12 Apr 2017 09:02:31 -0700 (PDT) X-Original-Message-ID: Final-Recipient: rfc822; curtiskwong9@gmail.com Action: delayed Status: 4.0.0 Diagnostic-Code: smtp; Receive rate too high Last-Attempt-Date: Fri, 14 Apr 2017 11:17:05 -0700 (PDT) Will-Retry-Until: Sat, 15 Apr 2017 09:02:31 -0700 (PDT) --001a11429e26e14d2a054d2472df Content-Type: message/global Content-Transfer-Encoding: quoted-printable X-Received: by 10.55.24.101 with SMTP id j98mr53538873qkh.178.1492012951282= ; Wed, 12 Apr 2017 09:02:31 -0700 (PDT) Return-Path: Received: from [23.21.143.60] (smtp4.opayq.com. [23.21.143.60]) by mx.google.com with ESMTPS id f7si19900306qtf.104.2017.04.12.09.0= 2.31 for (version=3DTLS1_2 cipher=3DAES128-SHA bits=3D128/128); Wed, 12 Apr 2017 09:02:31 -0700 (PDT) Received-SPF: pass (google.com: domain of fwd-737qhysmhvayqaucaoiqbdaagaqlm= a2yamheccjdlibayawyakiazaqhsmccwmblia4uanqueigcimbkmazuz4aaeaaca=3D=3D=3D@o= payq.com designates 23.21.143.60 as permitted sender) client-ip=3D23.21.143= .60; Authentication-Results: mx.google.com; dkim=3Dpass header.i=3D@opayq.com; spf=3Dpass (google.com: domain of fwd-737qhysmhvayqaucaoiqbdaagaqlma= 2yamheccjdlibayawyakiazaqhsmccwmblia4uanqueigcimbkmazuz4aaeaaca=3D=3D=3D@op= ayq.com designates 23.21.143.60 as permitted sender) smtp.mailfrom=3DFWD-73= 7QHYSMHVAYQAUCAOIQBDAAGAQLMA2YAMHECCJDLIBAYAWYAKIAZAQHSMCCWMBLIA4UANQUEIGCI= MBKMAZUZ4AAEAACA=3D=3D=3D@opayq.com DKIM-Signature: v=3D1; d=3Dopayq.com; t=3D1492012949; b=3DlNMvW4qO5SAnjc5qB= h7LE8l9d5rNgWOFXIFXbpT6PHyjWh5VSrCSTbyO7DCgBgrtQgELCZHlxgr6C/iwLDEJj07+8B4X= 4Go+m7rOYgQHjN4UoKU5modxwch+KikuuLi/X6aC1gCb0lp23cdQQhQZWaFFjUeF9MGmT42gYYt= LEK0=3D; s=3Dabine; c=3Drelaxed/relaxed; a=3Drsa-sha256; bh=3DmR+bU3SgWYDwE= +TQsgekraNC5ZywMSIHKTctywSxFdY=3D; h=3DDate:From:Reply-To:Subject:To:List-U= nsubscribe; MIME-Version: 1.0 Content-Type: text/plain; charset=3D"utf-8" Content-Transfer-Encoding: 7bit X-GetAbine-Processed: 1 From: "lists.xen.org [Masked]" Sender: "lists.xen.org [Masked]" Reply-To:=20 FWD-737QHYSMHVAYQAUCAOIQBDAAGAQLMA2YAMHECCJDLIBAYAWYAKIAZAQHSMCCWMBLIA4UAN= QUEIGCIMBKMAZUZ4AAEAACA=3D=3D=3D@opayq.com To: f4da1594@opayq.com X-GetAbine-Sender: xen-changelog-bounces@lists.xen.org X-GetAbine-Disposable: f4da1594@opayq.com X-GetAbine-Host-Address: 23.21.143.60 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrDLMWRWlGSWpSXmKPExsWS0XRdVVdW412 EwZn7yhYTthk4MHps79vFHsAYxZqZl5RfkcCasXv5VraC4/UVK2ZXNDBuTehi5OIQEvjCKNG/ uY0RwjnPKLFy23KmLkYODjYBMYm5exW6GDk5RARUJWatWM4MYgsJqEs0/W5gA7GFBdwk9h07C xbnFTCTeNN0AizOAlT/8t5mxgmMHAsYGVYxahSnFpWlFukaGuolFWWmZ5TkJmbm6BoamOnlph YXJ6an5iQmFesl5+duYgT6hAEIdjB+WhZwiFGSg0lJlPeywtsIIb6k/JTKjMTijPii0pzU4kO MMhwcShK8R9XeRQgJFqWmp1akZeYAgwMmLcHBoyTCmwKS5i0uSMwtzkyHSJ1i1OV4t/TDeyYh lrz8vFQpcV5jdaAiAZCijNI8uBGwQL3EKCslzMsIdJQQT0FqUW5mCar8K0ZxDkYlYd6XIKt4M vNK4Da9AjqCCeiItXvfghxRkoiQkmpg3Peqe5tfzYmvKZbTljupPYyqfxx3drF5WcbzN3tjDp xuvCP8xVbZe5qC/eeO9PtBBydnfqjSP9H1Wdxe8KPZ1evPnSa2Hfu8b2PopJpEucPXnhxuPbv hwJmnzrG1TGyPqnp5+csffp995rbymo/npeR2c++NPXpIWVOxt9zRdvX/W4pa4nxfpyuxFGck GmoxFxUnAgC7LLY0TwIAAA=3D=3D X-Env-Sender: ian.jackson@eu.citrix.com X-Msg-Ref: server-14.tower-27.messagelabs.com!1492002844!84565039!1 X-Originating-IP: [104.130.215.37] X-SpamReason: No, hits=3D0.5 required=3D7.0 tests=3DBODY_RANDOM_LONG X-StarScan-Received:=20 X-StarScan-Version: 9.4.12; banners=3D-,-,- X-VirusChecked: Checked Message-Id: Date: Wed, 12 Apr 2017 13:14:04 +0000 Subject: [Xen-changelog] [xen master] tools/insn-fuzz: Avoid making use of static data X-BeenThere: xen-changelog@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "Change log for Mercurial \(receive only\)" List-Unsubscribe: ,=20 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: ,=20 -------------------------Blur------------------------- This email is forwarded from a MASKED EMAIL you created using Blur. (https= ://dnt.abine.com/#help/faq/faq-whataremaskedemails). IF THIS IS SPAM, CLICK HERE TO BLOCK: https://dnt.abine.com/#/block_email/f4da1594@opayq.com/FWD-737QHYSMHVAYQAUC= AOIQBDAAGAQLMA2YAMHECCJDLIBAYAWYAKIAZAQHSMCCWMBLIA4UANQUEIGCIMBKMAZUZ4AAEAA= CA=3D=3D=3D@opayq.com Want to shop safely and privately online? Go Premium: https://dnt.abine.com= /?pk_campaign=3DmaskHeader#premium -------------------------by Abine------------------------- commit b163e550df2127b2bd1fbce682bed87e8d18d0dc Author: Andrew Cooper AuthorDate: Mon Mar 20 18:33:59 2017 +0000 Commit: Andrew Cooper CommitDate: Thu Apr 6 18:42:49 2017 +0100 tools/insn-fuzz: Avoid making use of static data =20 AFL has a measure of stability, where it passes the same corpus into th= e fuzzing harness and observes whether the execution path changes from be= fore. Any instability in the fuzzing harness reduces its effectiveness, as an observed crash may not reliably be caused by the original corpus. =20 In preparation to fix a stability bug, introduce struct fuzz_state, all= ocated on the stack and passed around via struct x86_emulate_ctxt's data param= eter. Propagate ctxt into the helpers such as maybe_fail(), so the state can = be retrieved. =20 Move the previously-static data_{index,num} into struct fuzz_state. =20 Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- tools/fuzz/x86_instruction_emulator/fuzz-emul.c | 181 +++++++++++++++-----= ---- 1 file changed, 116 insertions(+), 65 deletions(-) diff --git a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c b/tools/fuzz/x= 86_instruction_emulator/fuzz-emul.c index 64b7fb2..db0719e 100644 --- a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c +++ b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c @@ -21,7 +21,9 @@ =20 #define SEG_NUM x86_seg_none =20 -struct input_struct { +/* Layout of data expected as fuzzing input. */ +struct fuzz_corpus +{ unsigned long cr[5]; uint64_t msr[MSR_INDEX_MAX]; struct cpu_user_regs regs; @@ -29,19 +31,36 @@ struct input_struct { unsigned long options; unsigned char data[4096]; } input; -#define DATA_OFFSET offsetof(struct input_struct, data) -static unsigned int data_index; -static unsigned int data_num; +#define DATA_OFFSET offsetof(struct fuzz_corpus, data) + +/* + * Internal state of the fuzzing harness. Calculated initially from the i= nput + * corpus, and later mutates by the emulation callbacks. + */ +struct fuzz_state +{ + /* Fuzzer's input data. */ + struct fuzz_corpus *corpus; + + /* Real amount of data backing corpus->data[]. */ + size_t data_num; + + /* Amount of corpus->data[] consumed thus far. */ + size_t data_index; +}; =20 /* * Randomly return success or failure when processing data. If * `exception` is false, this function turns _EXCEPTION to _OKAY. */ -static int maybe_fail(const char *why, bool exception) +static int maybe_fail(struct x86_emulate_ctxt *ctxt, + const char *why, bool exception) { + struct fuzz_state *s =3D ctxt->data; + const struct fuzz_corpus *c =3D s->corpus; int rc; =20 - if ( data_index >=3D data_num ) + if ( s->data_index >=3D s->data_num ) rc =3D X86EMUL_EXCEPTION; else { @@ -50,13 +69,13 @@ static int maybe_fail(const char *why, bool exception) * 25% unhandlable * 25% exception */ - if ( input.data[data_index] > 0xc0 ) + if ( c->data[s->data_index] > 0xc0 ) rc =3D X86EMUL_EXCEPTION; - else if ( input.data[data_index] > 0x80 ) + else if ( c->data[s->data_index] > 0x80 ) rc =3D X86EMUL_UNHANDLEABLE; else rc =3D X86EMUL_OKAY; - data_index++; + s->data_index++; } =20 =20 ----- Message truncated ----- --001a11429e26e14d2a054d2472df-- --===============4767691538810872858== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg== --===============4767691538810872858==--