Module Name: src Committed By: tnozaki Date: Sun Mar 28 14:05:09 UTC 2010
Modified Files: src/lib/libc/locale: setlocale32.c Log Message: avoid mbrtowc/wcrtomb buffer overrun when CPUARCH=hppa and MB_CUR_MAX > 6. it is not usual case(merely used such mutibyte locale, eg. ja_JP.ISO-2022-JP). [background] before merging minoura-xpg4dl branch(2001), we argued and decided to increase MB_LEN_MAX 1 -> 32 all CPUARCH(*but* we forgot to change it MD to MI). without knowing that NetBSD/hp700(mergeing -current 2002) incorrectly set MB_LEN_MAX=6 (maybe this value taken from FreeBSD). but our setlocale(3) assumes __mb_len_max_runtime as 32, so that mbrtowc/wcrtomb may overrun. we have to increase hppa's MB_LEN_MAX upto 32, and change it MD to MI next libc major bump(scheduled next release 6.0). To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/lib/libc/locale/setlocale32.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/locale/setlocale32.c diff -u src/lib/libc/locale/setlocale32.c:1.2 src/lib/libc/locale/setlocale32.c:1.3 --- src/lib/libc/locale/setlocale32.c:1.2 Tue Mar 11 17:23:07 2003 +++ src/lib/libc/locale/setlocale32.c Sun Mar 28 14:05:09 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: setlocale32.c,v 1.2 2003/03/11 17:23:07 tshiozak Exp $ */ +/* $NetBSD: setlocale32.c,v 1.3 2010/03/28 14:05:09 tnozaki Exp $ */ /*- * Copyright (c)1999 Citrus Project, @@ -28,7 +28,7 @@ #include <sys/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: setlocale32.c,v 1.2 2003/03/11 17:23:07 tshiozak Exp $"); +__RCSID("$NetBSD: setlocale32.c,v 1.3 2010/03/28 14:05:09 tnozaki Exp $"); #endif /* LIBC_SCCS and not lint */ #include "namespace.h" @@ -44,6 +44,6 @@ /* locale may be NULL */ - __mb_len_max_runtime = 32; + __mb_len_max_runtime = MB_LEN_MAX; return __setlocale(category, locale); }