Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Don Howard <dhoward@redhat.com>
To: Kevin Buettner <kevinb@redhat.com>
Cc: <gdb-patches@sources.redhat.com>
Subject: Re: [Patch] Another small memattr fix.
Date: Fri, 14 Jun 2002 12:44:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.33.0206141132310.3839-100000@theotherone> (raw)
In-Reply-To: <1020614182844.ZM24445@localhost.localdomain>

On Fri, 14 Jun 2002, Kevin Buettner wrote:

> Don,
> 
> Could you explain this change in more detail?
> 
> > -  if (lo >= hi)
> > +  if (lo > hi-1)
> 
> I.e, with the exception of the boundary conditions (max int, min int),
> aren't these two equivalent when lo and hi are integers?
> 

Yes they are equivalent -- I was trying to address the boundary
conditions.  (Obviously this approch is wrong, wrong, wrong)

Memory regions are specified with an inclusive lower bound and an
exclusive upper bound, so

mem 0 4 wo 
mem 4 8 ro

means that addresses 0x0, 0x1, 0x2, 0x3 are writable and 0x4, 0x5, 0x6 0x7
are readable.  

The exclusive upper bound causes trouble when trying to address max int, 
as it wraps :

(Assuming 32 bit addresses)

mem 0xfffffff0 0x100000000 ==> 0xfffffff0 0x0  /* woops */



The strings are arbitrary expressions and are converted to address via
parse_and_eval_address(), which does not flag overflow:

mem_command (char *args, int from_tty)
{
  CORE_ADDR lo, hi;
  char *tok;
  struct mem_attrib attrib;

  if (!args)
    error_no_arg ("No mem");

  tok = strtok (args, " \t");
  if (!tok)
    error ("no lo address");
  lo = parse_and_eval_address (tok);

  tok = strtok (NULL, " \t");
  if (!tok)
    error ("no hi address");
  hi = parse_and_eval_address (tok);

mabe parse_and_eval_address could detect overflow and throw an error().

Another possiblity is that the interface could be changed, making the
upper bound inclusive also. 

Any preferences?




-- 
dhoward@redhat.com
gdb engineering








  reply	other threads:[~2002-06-14 19:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-12 16:32 Don Howard
2002-06-12 19:40 ` Andrew Cagney
2002-06-13 10:33   ` Don Howard
2002-06-14 11:28 ` Kevin Buettner
2002-06-14 12:44   ` Don Howard [this message]
2002-06-14 13:00     ` Kevin Buettner
2002-06-14 13:30       ` Andrew Cagney
2002-06-14 14:19         ` Don Howard
2002-06-15 18:28           ` Andrew Cagney
2002-06-17 10:47             ` Don Howard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.33.0206141132310.3839-100000@theotherone \
    --to=dhoward@redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=kevinb@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox