Eliminating a warning in sys/boot

Patrick Powell papowell at astart.com
Mon Feb 11 15:18:14 UTC 2013


On 02/10/13 01:27, hiren panchasara wrote:
> On Sat, Feb 9, 2013 at 4:10 PM, Sean Bruno <seanwbruno at gmail.com> wrote:
>> So, this is not a valid warning in our universe and I'd like to silence
>> it when compiling sys/boot as printf(9) and sprintf(9) supports this
>> format.  How can we silence this warning for the FreeBSD universe?
>>
>> ===> efi/libefi (all)
>> In file included from efinet.c:39:
>> /home/sbruno/fbsd_head/sys/boot/efi/libefi/../../common/dev_net.c:328:19: warning: invalid conversion specifier 'D'
>>        [-Wformat-invalid-specifier]
>>          sprintf(temp, "%6D", d->myea, ":");
> Here "d->myea" being char pointer, can we not do following instead? :
> sprintf(temp, "%6s", d->myea, ":");


NO NO NO NO!   I really suggest that sprintf be removed from the C library.

Try:
char fixed_buffer[32];
snprintf(fixed_buffer, sizeof(fixed_buffer), "%6whateverformat",whatever);


-- 
Patrick Powell                 Astart Technologies
papowell at astart.com            1530 Jamacha Road, Suite X,
Network and System             El Cajon, CA 92019
   Consulting                   858-874-6543
Web Site: www.astart.com



More information about the freebsd-hackers mailing list