[{"id":1778906,"web_url":"http://patchwork.ozlabs.org/comment/1778906/","msgid":"<CABdb734KoO5Myps-hA9qkhUDP=XvBtZsVgyB_G=W1+9p5e5j5A@mail.gmail.com>","list_archive_url":null,"date":"2017-10-03T12:36:51","subject":"Re: [Qemu-devel] [PATCH 28/43] windbg: implemented\n\twindbg_read_ks_regs","submitter":{"id":68164,"url":"http://patchwork.ozlabs.org/api/people/68164/","name":"Ladi Prosek","email":"lprosek@redhat.com"},"content":"On Tue, Sep 26, 2017 at 1:06 PM, Mihail Abakumov\n<mikhail.abakumov@ispras.ru> wrote:\n> Signed-off-by: Mihail Abakumov <mikhail.abakumov@ispras.ru>\n> Signed-off-by: Pavel Dovgalyuk <dovgaluk@ispras.ru>\n> Signed-off-by: Dmitriy Koltunov <koltunov@ispras.ru>\n> ---\n>  windbgstub-utils.c |   38 ++++++++++++++++++++++++++++++++++++++\n>  1 file changed, 38 insertions(+)\n>\n> diff --git a/windbgstub-utils.c b/windbgstub-utils.c\n> index 73ff98dfbc..537ba9e2aa 100755\n> --- a/windbgstub-utils.c\n> +++ b/windbgstub-utils.c\n> @@ -587,6 +587,44 @@ static int windbg_write_context(CPUState *cpu, uint8_t *buf, int len,\n>  static int windbg_read_ks_regs(CPUState *cpu, uint8_t *buf, int len,\n>                                 int offset)\n>  {\n> +    CPUArchState *env = cpu->env_ptr;\n> +    const bool new_mem = (len != sizeof(CPU_KSPECIAL_REGISTERS)\n> +                       || offset != 0);\n> +    CPU_KSPECIAL_REGISTERS *ckr;\n> +    if (new_mem) {\n> +        ckr = g_new(CPU_KSPECIAL_REGISTERS, 1);\n> +    } else {\n> +        ckr = (CPU_KSPECIAL_REGISTERS *) buf;\n> +    }\n> +\n> +    memset(ckr, 0, len);\n\nBuffer overrun on len > sizeof(CPU_KSPECIAL_REGISTERS).\n\n> +    ckr->Cr0 = ldl_p(&env->cr[0]);\n> +    ckr->Cr2 = ldl_p(&env->cr[2]);\n> +    ckr->Cr3 = ldl_p(&env->cr[3]);\n> +    ckr->Cr4 = ldl_p(&env->cr[4]);\n> +\n> +    ckr->KernelDr0 = ldtul_p(&env->dr[0]);\n> +    ckr->KernelDr1 = ldtul_p(&env->dr[1]);\n> +    ckr->KernelDr2 = ldtul_p(&env->dr[2]);\n> +    ckr->KernelDr3 = ldtul_p(&env->dr[3]);\n> +    ckr->KernelDr6 = ldtul_p(&env->dr[6]);\n> +    ckr->KernelDr7 = ldtul_p(&env->dr[7]);\n> +\n> +    ckr->Gdtr.Pad = lduw_p(&env->gdt.selector);\n> +    ckr->Idtr.Pad = lduw_p(&env->idt.selector);\n> +\n> +    ckr->Gdtr.Limit = lduw_p(&env->gdt.limit);\n> +    ckr->Gdtr.Base  = ldtul_p(&env->gdt.base);\n> +    ckr->Idtr.Limit = lduw_p(&env->idt.limit);\n> +    ckr->Idtr.Base  = ldtul_p(&env->idt.base);\n> +    ckr->Tr         = lduw_p(&env->tr.selector);\n> +    ckr->Ldtr       = lduw_p(&env->ldt.selector);\n> +\n> +    if (new_mem) {\n> +        memcpy(buf, (uint8_t *) ckr + offset, len);\n> +        g_free(ckr);\n> +    }\n>      return 0;\n>  }\n>\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y5z7q6fXyz9s83\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  3 Oct 2017 23:37:27 +1100 (AEDT)","from localhost ([::1]:58413 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dzMRx-0003J0-W3\n\tfor incoming@patchwork.ozlabs.org; Tue, 03 Oct 2017 08:37:26 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:49315)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <lprosek@redhat.com>) id 1dzMRU-0003IL-FQ\n\tfor qemu-devel@nongnu.org; Tue, 03 Oct 2017 08:37:06 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <lprosek@redhat.com>) id 1dzMRR-0002zD-8Y\n\tfor qemu-devel@nongnu.org; Tue, 03 Oct 2017 08:36:56 -0400","from mail-ua0-f171.google.com ([209.85.217.171]:57016)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.71) (envelope-from <lprosek@redhat.com>) id 1dzMRR-0002z3-43\n\tfor qemu-devel@nongnu.org; Tue, 03 Oct 2017 08:36:53 -0400","by mail-ua0-f171.google.com with SMTP id n22so3689777uaj.13\n\tfor <qemu-devel@nongnu.org>; Tue, 03 Oct 2017 05:36:53 -0700 (PDT)","by 10.103.60.26 with HTTP; Tue, 3 Oct 2017 05:36:51 -0700 (PDT)"],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=DmF9U8X0UXcvbq8HGZulSwDluqcnSuW/uXMhD13xBR4=;\n\tb=YSi4FBV8cEgO2QPQbHX4Q20CO16/QmVaajromBBnRaghPHy6431hYm2v0XWuI+xuCU\n\tEs4Whp4mZ6vpi0lRtKg7SvSU6qvOtA8tMLmDkZ03WqFxpXgrcylUGpr1ON318GTXYEVs\n\tLpo67z1bQBNqTbGTum+yayDFcciuRjMDA56J6wOdkVh2DH0o0ZB3AnVTJD2c6ARoII76\n\t0BGcubefGrl7S/zzQLNcAEKM5ipoUemmiTWaWBqkdaWf+44NQq3OykxzRsRcU8b6O1Hr\n\tXumiPZpPe16MQ3V8NBjkhVmAt/OqCkCiJ7T8gora/LdVZSv6WeHlkCbVOnkqMlvoI/jP\n\tiwkg==","X-Gm-Message-State":"AMCzsaXHKnqy631hxdqVVbD+dFojqYYUoac5t/YOvpmCwGFdf4HV6dL8\n\tNc92SZ29X7TazekCAG/FIrhtv90zGfOwfKjz/u99zg==","X-Google-Smtp-Source":"AOwi7QA4NXtKlZKtgrauDIvEWlOKY38/rFVE1TTec1YnXNxWYsw3pBuTxfFZpEgOXhsG87/GJyTBZqxogqEq0qQ3SUY=","X-Received":"by 10.159.61.1 with SMTP id l1mr4555849uai.193.1507034212483;\n\tTue, 03 Oct 2017 05:36:52 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<150642400352.3900.13935192906711901682.stgit@Misha-PC.lan02.inno>","References":"<150642384156.3900.3326424823772221077.stgit@Misha-PC.lan02.inno>\n\t<150642400352.3900.13935192906711901682.stgit@Misha-PC.lan02.inno>","From":"Ladi Prosek <lprosek@redhat.com>","Date":"Tue, 3 Oct 2017 14:36:51 +0200","Message-ID":"<CABdb734KoO5Myps-hA9qkhUDP=XvBtZsVgyB_G=W1+9p5e5j5A@mail.gmail.com>","To":"Mihail Abakumov <mikhail.abakumov@ispras.ru>","Content-Type":"text/plain; charset=\"UTF-8\"","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.85.217.171","Subject":"Re: [Qemu-devel] [PATCH 28/43] windbg: implemented\n\twindbg_read_ks_regs","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"sw@weilnetz.de, qemu-devel <qemu-devel@nongnu.org>,\n\tPavel Dovgalyuk <dovgaluk@ispras.ru>,\n\tRoman Kagan <rkagan@virtuozzo.com>, \n\tPaolo Bonzini <pbonzini@redhat.com>, \"Denis V. Lunev\" <den@openvz.org>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}}]