diff options
author | ache <ache@FreeBSD.org> | 2004-04-25 19:56:50 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 2004-04-25 19:56:50 +0000 |
commit | a7c84134a695d7794304f72f605b9783a2f257d6 (patch) | |
tree | c6facc7890e1896c9f7d24683ec077343a174448 /lib/libc/locale | |
parent | 05ba732e146a0a3cc4309b3e384f72c52b8cb11d (diff) | |
download | FreeBSD-src-a7c84134a695d7794304f72f605b9783a2f257d6.zip FreeBSD-src-a7c84134a695d7794304f72f605b9783a2f257d6.tar.gz |
Rewrite split_lines() to operate safely
PR: 62694
Submitted by: moulin p <moulin.p@calyopea.com>
Diffstat (limited to 'lib/libc/locale')
-rw-r--r-- | lib/libc/locale/ldpart.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/libc/locale/ldpart.c b/lib/libc/locale/ldpart.c index 3c35e20..ea7b388 100644 --- a/lib/libc/locale/ldpart.c +++ b/lib/libc/locale/ldpart.c @@ -153,9 +153,13 @@ split_lines(char *p, const char *plim) { int i; - for (i = 0; p < plim; i++) { - p = strchr(p, '\n'); - *p++ = '\0'; + i = 0; + while (p < plim) { + if (*p == '\n') { + *p = '\0'; + i++; + } + p++; } return (i); } |