This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: date +"%Z"


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]