summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Blomdell <anders.blomdell@control.lth.se>2014-07-11 19:10:21 +0200
committerVijay Bellur <vbellur@redhat.com>2014-07-19 14:15:48 -0700
commit5b8de971a4b81bc2bd6de0ffc6386587226295c6 (patch)
tree8cc79eb8d39320b16742a16830504e026e3cf7c0
parent57c61d70ec1920f731f9509510e6913aa1d62aa3 (diff)
Use C-locale for numeric/string conversion routines
(strtod, ...) or config file parsing might fail. Change-Id: I649f29bbf87222399a0c2d1ed5a3bf136c613b9b BUG: 1117951 Signed-off-by: Anders Blomdell <anders.blomdell@control.lth.se> Reviewed-on: http://review.gluster.org/8299 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Prashanth Pai <ppai@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
-rw-r--r--libglusterfs/src/logging.c1
-rw-r--r--tests/bugs/bug-1117951.t24
2 files changed, 25 insertions, 0 deletions
diff --git a/libglusterfs/src/logging.c b/libglusterfs/src/logging.c
index e9734bcfca1..01e34b4c6a7 100644
--- a/libglusterfs/src/logging.c
+++ b/libglusterfs/src/logging.c
@@ -501,6 +501,7 @@ gf_openlog (const char *ident, int option, int facility)
/* TODO: Should check for errors here and return appropriately */
setlocale(LC_ALL, "");
+ setlocale(LC_NUMERIC, "C"); /* C-locale for strtod, ... */
/* close the previous syslog if open as we are changing settings */
closelog ();
openlog(ident, _option, _facility);
diff --git a/tests/bugs/bug-1117951.t b/tests/bugs/bug-1117951.t
new file mode 100644
index 00000000000..47a0781def5
--- /dev/null
+++ b/tests/bugs/bug-1117951.t
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+. $(dirname $0)/../include.rc
+. $(dirname $0)/../volume.rc
+
+cleanup;
+
+TEST glusterd
+TEST pidof glusterd
+TEST $CLI volume create $V0 $H0:$B0/brick
+EXPECT 'Created' volinfo_field $V0 'Status';
+TEST $CLI volume start $V0
+
+# Running with a locale not using '.' as decimal separator should work
+export LC_NUMERIC=sv_SE.utf8
+TEST glusterfs --volfile-id=$V0 --volfile-server=$H0 $M0
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
+
+# As should a locale using '.' as a decimal separator
+export LC_NUMERIC=C
+TEST glusterfs --volfile-id=$V0 --volfile-server=$H0 $M0
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
+
+cleanup