date +"%Z"

Lothan lothan@newsguy.com
Thu Feb 1 01:59:00 GMT 2001


> From: cygwin-owner@sources.redhat.com
> [ mailto:cygwin-owner@sources.redhat.com]On Behalf Of Jerome BENOIT
> Sent: Wednesday, January 31, 2001 6:48 PM
> To: Cygnus
> Subject: date +"%Z"
>
>
> Hello !
>
> It seems that the command line
>
> date +"%Z"
>
> hangs under Win98.
>
> I hope it helps,
> Jerome BENOIT

The problem is in this section of code in the show_date() routine in date.c:

	do
	{
		out_length += 200;
		out = (char *) xrealloc(out, out_length);
	}
	while(strftime(out, out_length, format, tm) == 0);

It allocates memory 200 bytes at a time until strftime() returns a success
status. The basic premise seems to be to allocate a large enough buffer for
strftime() to write the specified date format into. Unfortunately it's
bumping heads with this basic code in strftime():

	size_t count = 0;

	switch(*format)
	{
		case "Z":
			break;
	}

	s[count] = '\0';
	return count;

In this case strftime() doesn't support the %Z format, so it always returns
zero. This leads to the code in date continuously allocating memory until
it's completely exhausted.


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list