aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/locale/setlocale.c
diff options
context:
space:
mode:
authorAndrey A. Chernov <ache@FreeBSD.org>2003-12-24 10:16:46 +0000
committerAndrey A. Chernov <ache@FreeBSD.org>2003-12-24 10:16:46 +0000
commitad4688e13123b9abca6e62401008612d177b6ec2 (patch)
tree436d0bdcf89b139e2db7e6d30f15d33e1c784090 /lib/libc/locale/setlocale.c
parentba2bc772d12252e927c40a14cfc8c302c70388be (diff)
downloadsrc-ad4688e13123b9abca6e62401008612d177b6ec2.tar.gz
src-ad4688e13123b9abca6e62401008612d177b6ec2.zip
Properly advance "x/y/z" form slash-pointers in some rare cases
PR: 60539
Notes
Notes: svn path=/head/; revision=123801
Diffstat (limited to 'lib/libc/locale/setlocale.c')
-rw-r--r--lib/libc/locale/setlocale.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/libc/locale/setlocale.c b/lib/libc/locale/setlocale.c
index 6829ae5bf2e3..2e428b31ace2 100644
--- a/lib/libc/locale/setlocale.c
+++ b/lib/libc/locale/setlocale.c
@@ -187,11 +187,11 @@ setlocale(category, locale)
(void)strlcpy(new_categories[i], locale,
len + 1);
i++;
+ while (*r == '/')
+ r++;
locale = r;
- while (*locale == '/')
- ++locale;
- while (*++r && *r != '/')
- ;
+ while (*r && *r != '/')
+ r++;
} while (*locale);
while (i < _LC_LAST) {
(void)strcpy(new_categories[i],