This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: [RFC] xnsprintf()
- From: Daniel Jacobowitz <drow at false dot org>
- To: Andrew Cagney <cagney at gnu dot org>
- Cc: Mark Kettenis <kettenis at gnu dot org>, gdb at sources dot redhat dot com
- Date: Fri, 8 Apr 2005 19:39:32 -0400
- Subject: Re: [RFC] xnsprintf()
- References: <200503131448.j2DEmqZ0029001@elgar.sibelius.xs4all.nl> <20050313154155.GB18342@nevyn.them.org> <42571449.9030800@gnu.org>
On Fri, Apr 08, 2005 at 07:31:21PM -0400, Andrew Cagney wrote:
> Daniel Jacobowitz wrote:
> >On Sun, Mar 13, 2005 at 03:48:52PM +0100, Mark Kettenis wrote:
> >
> >>The bootdisk of my workstation crashed, so I found myself replacing my
> >>aging FreeBSD environment with a fresh OpenBSD snapshot. The OpenBSD
> >>toolchain complains about using dangerous functions like snprintf:
> >>
> >> libgdb.a(remote.o)(.text+0xb3b): In function `set_thread':
> >> ../../src/gdb/remote.c:1066: warning: sprintf() is often misused,
> >> please use snprintf()
> >>
> >>Of course it is right, so I've started converting sprintf() into
> >>snprintf(). While doing so, I find myself writing the following bit
> >>of code over and over again:
> >>
> >> int size;
> >> size = snprintf (buf, sizeof buf, ...);
> >> gdb_assert (size < sizeof buf);
> >>
> >>So right now I'm wondering whether we should have a function, say
> >>xsnprintf(), that checks whether the string fits in the buffer, and
> >>throws an internal-error if it doesn't.
> >>
> >>Opinions?
> >
> >
> >Sure. Seems like a good fit with xasprintf and xstrprintf.
>
> I like this positive change.
>
> http://sources.redhat.com/ml/gdb-patches/2003-04/msg00404.html
> I disagree. Why on earth wouldn't we use sprintf? Just because it can
> be used incorrectly is no excuse.
Mark has a valid reason - that OpenBSD has begun to warn about it - and
even if I think it's a bit objectionable for an OS to issue such a
warning, we don't get to decide that.
He was also offering a constructive idea for a new interface instead of
objecting to anything. The question I answered here is not the same
as the opinion I offered in your quoted message.
Anyway, did you have anything useful to contribute, or did you just pop
out of the woodwork to be sarcastic at me? I don't appreciate it.
--
Daniel Jacobowitz
CodeSourcery, LLC