NetBSD Problem Report #44113
From njoly@lanfeust.sis.pasteur.fr Thu Nov 18 14:55:28 2010
Return-Path: <njoly@lanfeust.sis.pasteur.fr>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by www.NetBSD.org (Postfix) with ESMTP id 6CFB563BA98
for <gnats-bugs@gnats.NetBSD.org>; Thu, 18 Nov 2010 14:55:28 +0000 (UTC)
Message-Id: <20101118145525.87EC7DC9BB@lanfeust.sis.pasteur.fr>
Date: Thu, 18 Nov 2010 15:55:25 +0100 (CET)
From: njoly@pasteur.fr
Reply-To: njoly@pasteur.fr
To: gnats-bugs@gnats.NetBSD.org
Subject: printf(3) should ignore zero padding for nan/inf
X-Send-Pr-Version: 3.95
>Number: 44113
>Category: lib
>Synopsis: printf(3) should ignore zero padding for nan/inf
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: lib-bug-people
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Nov 18 15:00:01 +0000 2010
>Closed-Date: Fri Nov 19 12:57:38 +0000 2010
>Last-Modified: Fri Nov 19 18:20:02 +0000 2010
>Originator: Nicolas Joly
>Release: NetBSD 5.99.39
>Organization:
Institut Pasteur
>Environment:
System: NetBSD lanfeust.sis.pasteur.fr 5.99.39 NetBSD 5.99.39 (LANFEUST) #14: Thu Nov 18 13:06:13 CET 2010 njoly@lanfeust.sis.pasteur.fr:/local/src/NetBSD/obj.amd64/sys/arch/amd64/compile/LANFEUST amd64
Architecture: x86_64
Machine: amd64
>Description:
printf(3) family of functions do obey zero padding flag when printing
nan/inf values, but should better not.
A call such as `printf("%010f", NAN)' will generate the following `0000000nan'
string, which can give unexpected results and prevents further parsing; calls
such as strtod(3) will fails ... Generating a space padded string ` nan'
seems much better in that case.
>How-To-Repeat:
>Fix:
The following patch do seems to do the trick.
Index: lib/libc/stdio/vfwprintf.c
===================================================================
RCS file: /cvsroot/src/lib/libc/stdio/vfwprintf.c,v
retrieving revision 1.21
diff -u -p -r1.21 vfwprintf.c
--- lib/libc/stdio/vfwprintf.c 31 Jul 2010 08:47:34 -0000 1.21
+++ lib/libc/stdio/vfwprintf.c 18 Nov 2010 14:36:07 -0000
@@ -1131,6 +1131,7 @@ fp_common:
result = (ch >= 'a') ? STRCONST("inf") :
STRCONST("INF");
size = 3;
+ flags &= ~ZEROPAD;
break;
}
#else
@@ -1161,6 +1162,7 @@ fp_common:
else
result = STRCONST("inf");
size = 3;
+ flags &= ~ZEROPAD;
break;
}
if (isnan(_double)) {
@@ -1169,6 +1171,7 @@ fp_common:
else
result = STRCONST("nan");
size = 3;
+ flags &= ~ZEROPAD;
break;
}
>Release-Note:
>Audit-Trail:
From: "Christos Zoulas" <christos@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/44113 CVS commit: src/lib/libc/stdio
Date: Thu, 18 Nov 2010 19:44:20 -0500
Module Name: src
Committed By: christos
Date: Fri Nov 19 00:44:19 UTC 2010
Modified Files:
src/lib/libc/stdio: vfwprintf.c
Log Message:
PR/44113: Nicolas Joly: printf(3) should ignore zero padding for nan/inf
To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/lib/libc/stdio/vfwprintf.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
State-Changed-From-To: open->feedback
State-Changed-By: wiz@NetBSD.org
State-Changed-When: Fri, 19 Nov 2010 00:47:57 +0000
State-Changed-Why:
christos committed, ok now?
From: Nicolas Joly <njoly@pasteur.fr>
To: gnats-bugs@NetBSD.org
Cc: lib-bug-people@netbsd.org, netbsd-bugs@netbsd.org,
gnats-admin@netbsd.org, wiz@NetBSD.org, njoly@pasteur.fr
Subject: Re: lib/44113 (printf(3) should ignore zero padding for nan/inf)
Date: Fri, 19 Nov 2010 13:40:38 +0100
On Fri, Nov 19, 2010 at 12:47:59AM +0000, Thomas Klausner wrote:
> Synopsis: printf(3) should ignore zero padding for nan/inf
>
> State-Changed-From-To: open->feedback
> State-Changed-By: wiz@NetBSD.org
> State-Changed-When: Fri, 19 Nov 2010 00:47:57 +0000
> State-Changed-Why:
> christos committed, ok now?
Works fine. Thanks.
--
Nicolas Joly
Biological Software and Databanks.
Institut Pasteur, Paris.
State-Changed-From-To: feedback->closed
State-Changed-By: wiz@NetBSD.org
State-Changed-When: Fri, 19 Nov 2010 12:57:38 +0000
State-Changed-Why:
Confirmed fixed, thanks.
From: "Nicolas Joly" <njoly@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/44113 CVS commit: src
Date: Fri, 19 Nov 2010 18:18:54 +0000
Module Name: src
Committed By: njoly
Date: Fri Nov 19 18:18:54 UTC 2010
Modified Files:
src/distrib/sets/lists/tests: mi
src/tests/lib/libc/stdio: Makefile
Added Files:
src/tests/lib/libc/stdio: t_format.c
Log Message:
Add testcase for PR/44113: printf(3) should ignore zero padding for
nan/inf.
To generate a diff of this commit:
cvs rdiff -u -r1.157 -r1.158 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libc/stdio/Makefile
cvs rdiff -u -r0 -r1.1 src/tests/lib/libc/stdio/t_format.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.