From patchwork Wed Nov 15 09:12:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 24249 Received: (qmail 37848 invoked by alias); 15 Nov 2017 09:13:45 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 6442 invoked by uid 89); 15 Nov 2017 09:12:59 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KB_WAM_FROM_NAME_SINGLEWORD, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=HX-Received:Wed, H*r:sk:static. X-HELO: mail-wr0-f173.google.com Received: from mail-wr0-f173.google.com (HELO mail-wr0-f173.google.com) (209.85.128.173) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 15 Nov 2017 09:12:58 +0000 Received: by mail-wr0-f173.google.com with SMTP id 4so19877458wrt.0 for ; Wed, 15 Nov 2017 01:12:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=Nl+qLRW39JyRzErLzIzwwDdmPC+ETNKrViNMbeTjjlk=; b=X/pGMWYwhvn1qam5qOaBQaagvZbgTalQZsD2f0NA3DDCr53yEyuUwzlD4YaZZa/PPP PIU0bvQZls8J0ilDsDeHLT9CZ025MPXetgjTjsFlU/RudkMkHF9Kp8PSw8u7AVvtDGUF eUd1BHwqDmtoJSYpZsgnxE8sisf7ImVAL89kQTHILCWpaLoMTQm4ciLywGdwWhhlCesJ daw1o+GsDPeYtJ766AvrLUaq+3mG7utEOcqnAjhwJp0UVAA+H1sEMHByvA7HfpLxsol8 WFY8d8TNI24QAyO1KqN9+hCZt8RcL6uYF9A/9IX36cKPsMciZ8sMYyGWxARSI1+dpiio huog== X-Gm-Message-State: AJaThX7N+Ff5xJ7xElO9kVbvyPORkTHjvW7sHF413Ttf7hDnt5qr+FTe KMWrH9CmeIMRuZDNJJ0kglVADw== X-Google-Smtp-Source: AGs4zMa5FW4lw0bs6gL+1bJNccaGwpO3x4PyIbzYMAaWjc5xyRCBLkucY32pc/zWgLxVeMSU8dQ9GQ== X-Received: by 10.223.187.7 with SMTP id r7mr12227775wrg.253.1510737175982; Wed, 15 Nov 2017 01:12:55 -0800 (PST) Received: from E107787-LIN.cambridge.arm.com (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id k69sm16954826wmg.45.2017.11.15.01.12.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 15 Nov 2017 01:12:55 -0800 (PST) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Subject: [PATCH 1/3 OBV] Fix M68HC11_NUM_REGS Date: Wed, 15 Nov 2017 09:12:49 +0000 Message-Id: <1510737171-15435-2-git-send-email-yao.qi@linaro.org> In-Reply-To: <1510737171-15435-1-git-send-email-yao.qi@linaro.org> References: <1510737171-15435-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes M68HC11_LAST_HARD_REG is 8, but m68hc11 register number is started from 0, so there are 9 raw registers, but M68HC11_NUM_REGS is 8 by mistake. My following unit test can find this issue (GDB is built with asan) ================================================================= ==15555==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x602000113150 at pc 0x51393f bp 0x7fffcec36f60 sp 0x7fffcec36f58 WRITE of size 2 at 0x602000113150 thread T0 #0 0x51393e in m68hc11_pseudo_register_read gdb/m68hc11-tdep.c:320 #1 0xc4b620 in gdbarch_pseudo_register_read(gdbarch*, regcache*, int, unsigned char*) gdb/gdbarch.c:1974 #2 0xddad88 in regcache::cooked_read(int, unsigned char*) gdb/regcache.c:710 #3 0xddff2b in cooked_read_test gdb/regcache.c:1850 #4 0xdf8cfb in selftests::gdbarch_selftest::operator()() const gdb/selftest-arch.c:73 It is obvious, and I'll push it in. gdb: 2017-11-10 Yao Qi * m68hc11-tdep.c (M68HC11_NUM_REGS): Change it to M68HC11_LAST_HARD_REG + 1. --- gdb/m68hc11-tdep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c index b144d8b..9c2ecb0 100644 --- a/gdb/m68hc11-tdep.c +++ b/gdb/m68hc11-tdep.c @@ -112,7 +112,7 @@ enum insn_return_kind { #define SOFT_D32_REGNUM (SOFT_D1_REGNUM+31) #define M68HC11_MAX_SOFT_REGS 32 -#define M68HC11_NUM_REGS (8) +#define M68HC11_NUM_REGS (M68HC11_LAST_HARD_REG + 1) #define M68HC11_NUM_PSEUDO_REGS (M68HC11_MAX_SOFT_REGS+5) #define M68HC11_ALL_REGS (M68HC11_NUM_REGS+M68HC11_NUM_PSEUDO_REGS)