diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-01-26 01:34:13 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-01-26 01:34:13 +0000 |
commit | f00ebd7f811ac03665c877846cad3750b0815122 (patch) | |
tree | b11cd0722a54a37a5e2f645dd11fa6ebc365e7ca /string | |
parent | 488fb3c7368721be174d78f45bb3f5d89940446e (diff) | |
download | glibc-f00ebd7f811ac03665c877846cad3750b0815122.zip glibc-f00ebd7f811ac03665c877846cad3750b0815122.tar.gz glibc-f00ebd7f811ac03665c877846cad3750b0815122.tar.bz2 |
Update.
2000-01-25 Ulrich Drepper <drepper@cygnus.com>
* string/argz-stringify.c: Handle case of missing \0 at the end of
the given argz.
Diffstat (limited to 'string')
-rw-r--r-- | string/argz-stringify.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/string/argz-stringify.c b/string/argz-stringify.c index cd57b98..0bbc807 100644 --- a/string/argz-stringify.c +++ b/string/argz-stringify.c @@ -1,5 +1,5 @@ /* Routines for dealing with '\0' separated arg vectors. - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu> @@ -26,13 +26,16 @@ void __argz_stringify (char *argz, size_t len, int sep) { - while (len > 0) - { - size_t part_len = strlen (argz); - argz += part_len; - len -= part_len + 1; - if (len > 0) + if (len > 0) + do + { + size_t part_len = strnlen (argz, len); + argz += part_len; + len -= part_len; + if (len == 0) + break; *argz++ = sep; - } + } + while (--len > 0); } weak_alias (__argz_stringify, argz_stringify) |