Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-8]: src Pull up following revision(s) (requested by maya in ticke...
details: https://anonhg.NetBSD.org/src/rev/38d333fbc2cf
branches: netbsd-8
changeset: 434992:38d333fbc2cf
user: martin <martin%NetBSD.org@localhost>
date: Mon May 14 19:17:39 2018 +0000
description:
Pull up following revision(s) (requested by maya in ticket #822):
lib/libc/string/stresep.c: revision 1.4
tests/lib/libc/string/t_stresep.c: revision 1.4
PR/52499: Justin: stresep uses memmove with of-by-one length
Add test from PR/52499
diffstat:
lib/libc/string/stresep.c | 16 ++++++++++------
tests/lib/libc/string/t_stresep.c | 8 +++++++-
2 files changed, 17 insertions(+), 7 deletions(-)
diffs (78 lines):
diff -r 2fd2f6f6a6e2 -r 38d333fbc2cf lib/libc/string/stresep.c
--- a/lib/libc/string/stresep.c Mon May 14 19:11:21 2018 +0000
+++ b/lib/libc/string/stresep.c Mon May 14 19:17:39 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: stresep.c,v 1.3 2017/02/12 17:19:00 maya Exp $ */
+/* $NetBSD: stresep.c,v 1.3.4.1 2018/05/14 19:17:39 martin Exp $ */
/*-
* Copyright (c) 1990, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)strsep.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: stresep.c,v 1.3 2017/02/12 17:19:00 maya Exp $");
+__RCSID("$NetBSD: stresep.c,v 1.3.4.1 2018/05/14 19:17:39 martin Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -66,6 +66,7 @@
char *s;
const char *spanp;
int c, sc;
+ size_t l;
char *tok;
_DIAGASSERT(stringp != NULL);
@@ -73,22 +74,25 @@
if ((s = *stringp) == NULL)
return NULL;
+ l = strlen(s) + 1;
for (tok = s;;) {
c = *s++;
+ l--;
while (esc != '\0' && c == esc) {
- memmove(s - 1, s, strlen(s));
+ memmove(s - 1, s, l);
c = *s++;
+ l--;
}
spanp = delim;
do {
if ((sc = *spanp++) == c) {
- if (c == 0)
+ if (c == '\0')
s = NULL;
else
- s[-1] = 0;
+ s[-1] = '\0';
*stringp = s;
return tok;
}
- } while (sc != 0);
+ } while (sc != '\0');
}
}
diff -r 2fd2f6f6a6e2 -r 38d333fbc2cf tests/lib/libc/string/t_stresep.c
--- a/tests/lib/libc/string/t_stresep.c Mon May 14 19:11:21 2018 +0000
+++ b/tests/lib/libc/string/t_stresep.c Mon May 14 19:17:39 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: t_stresep.c,v 1.3 2013/02/15 23:56:32 christos Exp $ */
+/* $NetBSD: t_stresep.c,v 1.3.22.1 2018/05/14 19:17:39 martin Exp $ */
/*-
* Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -61,6 +61,12 @@
expect("bar foo");
expect(" baz");
expect("bar ");
+
+ char brkstr2[] = "aa bb cc\\ \\ \\ \\ dd-";
+ q = brkstr2;
+ expect("aa");
+ expect("bb");
+ expect("cc dd-");
}
ATF_TP_ADD_TCS(tp)
Home |
Main Index |
Thread Index |
Old Index