From: Carlos O'Donell <carlos@codesourcery.com>
To: Jim Blandy <jimb@codesourcery.com>
Cc: gdb-patches@sourceware.org, Daniel Jacobowitz <dan@codesourcery.com>
Subject: Re: [PATCH] Fix uninitialized use of variables.
Date: Fri, 26 Oct 2007 18:51:00 -0000 [thread overview]
Message-ID: <20071026153920.GD21241@lios> (raw)
In-Reply-To: <m31wbkl6gz.fsf@codesourcery.com>
On Wed, Oct 24, 2007 at 11:20:44AM -0700, Jim Blandy wrote:
> > In all truth I would have rather returned a status and let the caller
> > determine the error message.
>
> I can see the appeal, but that sounds like a lot of work:
>
> - Change all the 'unpack_' functions to take the text pointer by
> reference, update it in place, and return a status.
> - Change all their callers to pass the text pointer by reference,
> check the error code, and return an error status.
>
> And the win would be that you can say specifically what part of the
> packet didn't parse, instead of just saying that the packet didn't
> parse. It would be cleaner overall, but speaking for myself, there
> are other things I'd appreciate more. :)
Agreed.
> The callers of the 'unpack_' functions currently seem to assume that
> the callees will raise errors as needed; it doesn't seem too bad to go
> along with that.
Yes, that sounds good. Let's fix a real bug, and prevent a future
compiler warning.
OK to checkin?
Cheers,
Carlos.
--
Carlos O'Donell
CodeSourcery
carlos@codesourcery.com
(650) 331-3385 x716
gdb/
2007-10-26 Carlos O'Donell <carlos@codesourcery.com>
* remote.c (unpack_nibble): error if buffer is not valid hex.
* symtab.c (find_line_symtab): Initialize exact. Adjust
comment to mention `no match' case.
Index: remote.c
===================================================================
RCS file: /cvs/src/src/gdb/remote.c,v
retrieving revision 1.271
diff -u -p -r1.271 remote.c
--- remote.c 8 Oct 2007 12:55:09 -0000 1.271
+++ remote.c 26 Oct 2007 15:38:13 -0000
@@ -1343,7 +1343,8 @@ unpack_varlen_hex (char *buff, /* packet
static char *
unpack_nibble (char *buf, int *val)
{
- ishex (*buf++, val);
+ if (!ishex (*buf++, val))
+ error (_("Packet contains invalid hex data."));
return buf;
}
Index: symtab.c
===================================================================
RCS file: /cvs/src/src/gdb/symtab.c,v
retrieving revision 1.167
diff -u -p -r1.167 symtab.c
--- symtab.c 24 Oct 2007 13:25:16 -0000 1.167
+++ symtab.c 26 Oct 2007 15:38:13 -0000
@@ -2252,7 +2252,7 @@ find_pc_line (CORE_ADDR pc, int notcurre
struct symtab *
find_line_symtab (struct symtab *symtab, int line, int *index, int *exact_match)
{
- int exact;
+ int exact = 0;
/* BEST_INDEX and BEST_LINETABLE identify the smallest linenumber > LINE
so far seen. */
@@ -2267,10 +2267,10 @@ find_line_symtab (struct symtab *symtab,
best_index = find_line_common (best_linetable, line, &exact);
if (best_index < 0 || !exact)
{
- /* Didn't find an exact match. So we better keep looking for
- another symtab with the same name. In the case of xcoff,
- multiple csects for one source file (produced by IBM's FORTRAN
- compiler) produce multiple symtabs (this is unavoidable
+ /* Didn't find an exact match, or any match. So we better keep
+ looking for another symtab with the same name. In the case of
+ xcoff, multiple csects for one source file (produced by IBM's
+ FORTRAN compiler) produce multiple symtabs (this is unavoidable
assuming csects can be at arbitrary places in memory and that
the GLOBAL_BLOCK of a symtab has a begin and end address). */
prev parent reply other threads:[~2007-10-26 15:39 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-20 18:07 Carlos O'Donell
2007-10-23 23:20 ` Jim Blandy
2007-10-24 17:24 ` Carlos O'Donell
2007-10-24 0:10 ` Jim Blandy
2007-10-24 4:05 ` Daniel Jacobowitz
2007-10-24 17:12 ` Jim Blandy
2007-10-24 17:57 ` Daniel Jacobowitz
2007-10-24 17:15 ` Jim Blandy
2007-10-24 18:02 ` Carlos O'Donell
2007-10-24 18:21 ` Jim Blandy
2007-10-26 18:51 ` Carlos O'Donell [this message]
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=20071026153920.GD21241@lios \
--to=carlos@codesourcery.com \
--cc=dan@codesourcery.com \
--cc=gdb-patches@sourceware.org \
--cc=jimb@codesourcery.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