netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Cc: netdev@vger.kernel.org
Subject: [PATCH iputils v2] ping: always accept . delimiter with -i number parsing
Date: Thu,  2 Jun 2016 00:46:54 -0400	[thread overview]
Message-ID: <1464842814-30690-1-git-send-email-vapier@gentoo.org> (raw)
In-Reply-To: <1464752905-10347-6-git-send-email-vapier@gentoo.org>

Always allow #.# format for the -i flag even when the current locale
uses a different separator.  Locale de_DE which uses #,# normally.

Simple testcase:
$ make USE_IDN=1
$ LANG=de_DE.UTF8 ./ping -i 0.5 localhost
$ LANG=de_DE.UTF8 ./ping -i 0,5 localhost

Reported-by: Sergey Fionov <fionov@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 ping_common.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/ping_common.c b/ping_common.c
index 62f53a6..6054a91 100644
--- a/ping_common.c
+++ b/ping_common.c
@@ -269,11 +269,28 @@ void common_options(int ch)
 		double dbl;
 		char *ep;
 
+#ifdef USE_IDN
+		int try_c_loc = 0;
+ retry_c_loc:
+#endif
+
 		errno = 0;
 		dbl = strtod(optarg, &ep);
 
+#ifdef USE_IDN
+		if (try_c_loc)
+			setlocale(LC_ALL, "");
+#endif
+
 		if (errno || *ep != '\0' ||
 		    !finite(dbl) || dbl < 0.0 || dbl >= (double)INT_MAX / 1000 - 1.0) {
+#ifdef USE_IDN
+			if (!try_c_loc) {
+				try_c_loc = 1;
+				setlocale(LC_ALL, "C");
+				goto retry_c_loc;
+			}
+#endif
 			fprintf(stderr, "ping: bad timing interval\n");
 			exit(2);
 		}
-- 
2.8.2

  parent reply	other threads:[~2016-06-02  4:46 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-01  3:48 [PATCH iputils 1/6] start gitignore files Mike Frysinger
2016-06-01  3:48 ` [PATCH iputils 2/6] doc: fix parallel build of html/man pages Mike Frysinger
2016-06-02  2:39   ` YOSHIFUJI Hideaki
2016-06-01  3:48 ` [PATCH iputils 3/6] ping6: allow disabling of openssl support Mike Frysinger
2016-06-02  2:04   ` YOSHIFUJI Hideaki
2016-06-02  4:59   ` [PATCH iputils v2] ping6: allow disabling of openssl/libgcrypt support Mike Frysinger
2016-06-02  8:49     ` YOSHIFUJI Hideaki
2016-06-02 13:38       ` Mike Frysinger
2016-06-02 17:16     ` [PATCH iputils v3] " Mike Frysinger
2016-06-01  3:48 ` [PATCH iputils 4/6] fix handling of CFLAGS Mike Frysinger
2016-06-02  2:35   ` YOSHIFUJI Hideaki
2016-06-01  3:48 ` [PATCH iputils 5/6] tftpd: fix syslog setup Mike Frysinger
2016-06-02  2:10   ` YOSHIFUJI Hideaki
2016-06-02  4:33     ` Mike Frysinger
2016-06-02  8:31       ` YOSHIFUJI Hideaki
2016-06-01  3:48 ` [PATCH iputils 6/6] ping: fix -i number parsing in locales Mike Frysinger
2016-06-02  2:08   ` YOSHIFUJI Hideaki
2016-06-02  4:46   ` Mike Frysinger [this message]
2016-06-02  8:28     ` [PATCH iputils v2] ping: always accept . delimiter with -i number parsing YOSHIFUJI Hideaki
2016-06-02  2:06 ` [PATCH iputils 1/6] start gitignore files YOSHIFUJI Hideaki
2016-06-02  4:42   ` Mike Frysinger
2016-06-02  8:57     ` YOSHIFUJI Hideaki

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=1464842814-30690-1-git-send-email-vapier@gentoo.org \
    --to=vapier@gentoo.org \
    --cc=netdev@vger.kernel.org \
    --cc=yoshfuji@linux-ipv6.org \
    /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;
as well as URLs for NNTP newsgroup(s).