From: Roland McGrath Date: Thu, 24 Feb 2000 04:17:13 +0000 (+0000) Subject: 2000-02-23 Roland McGrath X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=daeb95104695130877af46a920f2c6457ad48386;p=thirdparty%2Fglibc.git 2000-02-23 Roland McGrath * string/argz-stringify.c (__argz_stringify): Fix loop termination conditions so as not to clobber the final '\0' when there is only one element in the vector. --- diff --git a/string/argz-stringify.c b/string/argz-stringify.c index 0bbc807953a..83ff1194005 100644 --- a/string/argz-stringify.c +++ b/string/argz-stringify.c @@ -1,7 +1,7 @@ /* Routines for dealing with '\0' separated arg vectors. - Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc. + Copyright (C) 1995,96,97,2000 Free Software Foundation, Inc. This file is part of the GNU C Library. - Written by Miles Bader + Written by Miles Bader The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as @@ -27,15 +27,14 @@ void __argz_stringify (char *argz, size_t len, int sep) { if (len > 0) - do + while (1) { size_t part_len = strnlen (argz, len); argz += part_len; len -= part_len; - if (len == 0) + if (len-- <= 1) /* includes final '\0' we want to stop at */ break; *argz++ = sep; } - while (--len > 0); } weak_alias (__argz_stringify, argz_stringify)