make mbstowcs(NULL, string, 0) correctly return the length of the
authordjm <djm@openbsd.org>
Sat, 23 Aug 2008 07:51:35 +0000 (07:51 +0000)
committerdjm <djm@openbsd.org>
Sat, 23 Aug 2008 07:51:35 +0000 (07:51 +0000)
wchar_t string needed to represent "string", which in our case
is just strlen(string); feedback & "looks right" deraadt@

lib/libc/locale/multibyte_sb.c

index 6f11625..4067b15 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: multibyte_sb.c,v 1.6 2005/12/10 02:01:51 deraadt Exp $        */
+/*     $OpenBSD: multibyte_sb.c,v 1.7 2008/08/23 07:51:35 djm Exp $    */
 /*     $NetBSD: multibyte_sb.c,v 1.4 2003/08/07 16:43:04 agc Exp $     */
 
 /*
@@ -132,7 +132,8 @@ mbstowcs(wchar_t *pwcs, const char *s, size_t n)
 {
 
        /* pwcs may be NULL */
-       /* s may be NULL */
+       if (pwcs == NULL)
+               return strlen(s);
 
        return mbsrtowcs(pwcs, &s, n, NULL);
 }