Re: [RFC] xnsprintf()

Andrew Cagney
2005-04-08T23:33:07Z

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.