Mail Archives: cygwin/2005/12/06/20:41:34
On Tue, 6 Dec 2005, Yitzchak Scott-Thoennes wrote:
> On Mon, Dec 05, 2005 at 09:40:01AM -0500, Igor Pechtchanski wrote:
> > Running cygcheck under strace shows that after listing all the available
> > services, it invokes "cygrunsrv --query grunsrv.exe --list", which results
> > in the above message. I think this may be because the output of
> > "cygrunsrv --list" doesn't contain a trailing '\n', and so strtok gets
> > confused. The following patch (against a slightly older cygcheck) fixes
> > it for me, but I haven't had the time to test it extensively:
> > [snip]
> > - buf[nchars] = 0;
> > + buf[nchars] = buf[nchars+1] = 0;
>
> That needs a comment in the code.
Fair enough:
Index: cygcheck.cc
===================================================================
RCS file: /cvs/src/src/winsup/utils/cygcheck.cc,v
retrieving revision 1.77
diff -u -p -r1.77 cygcheck.cc
--- cygcheck.cc 17 Aug 2005 00:52:43 -0000 1.77
+++ cygcheck.cc 7 Dec 2005 01:38:07 -0000
@@ -950,8 +950,10 @@ dump_sysinfo_services ()
else
{
/* read the output of --list, and then run --query for each service */
- size_t nchars = fread ((void *) buf, 1, sizeof (buf) - 1, f);
- buf[nchars] = 0;
+ size_t nchars = fread ((void *) buf, 1, sizeof (buf) - 2, f);
+ /* Add two nulls to avoid confusing strtok() when the trailing separator
+ is missing */
+ buf[nchars] = buf[nchars+1] = 0;
pclose (f);
if (nchars > 0)
I'll even add a ChangeLog of sorts :-)
2005-12-06 Igor Pechtchanski <pechtcha AT cs DOT nyu DOT edu>
* cygcheck.cc (dump_sysinfo_services): Add an extra NUL to mollify
strtok() when the trailing newline is missing.
HTH,
Igor
--
http://cs.nyu.edu/~pechtcha/
|\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu
ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D.
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
If there's any real truth it's that the entire multidimensional infinity
of the Universe is almost certainly being run by a bunch of maniacs. /DA
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -