delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/02/01/09:07:05

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Date: Thu, 1 Feb 2001 08:59:17 -0500
From: Christopher Faylor <cgf AT redhat DOT com>
To: Cygnus <cygwin AT cygwin DOT com>
Subject: Re: date +"%Z"
Message-ID: <20010201085917.F4545@redhat.com>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: Cygnus <cygwin AT cygwin DOT com>
References: <3A78CE75 DOT 6B336DAA AT Wanadoo DOT fr> <EJEMICJMAGCJAPFPGPLGOEDHCHAA DOT lothan AT newsguy DOT com>
Mime-Version: 1.0
User-Agent: Mutt/1.3.11i
In-Reply-To: <EJEMICJMAGCJAPFPGPLGOEDHCHAA.lothan@newsguy.com>; from lothan@newsguy.com on Thu, Feb 01, 2001 at 02:01:03AM -0800

On Thu, Feb 01, 2001 at 02:01:03AM -0800, Lothan wrote:
>> From: cygwin-owner AT sources DOT redhat DOT com
>> [mailto:cygwin-owner AT sources DOT redhat DOT 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.

Thank you very much for the detailed analysis.

If anyone is interested, could you let the maintainer of the date code know
about this?  There is probably a GNU maintainer but I don't know who it is.

cgf

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019