delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/04/24/17:21:26

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:references:in-reply-to:content-type; q=dns; s=default; b=a3eEK4
FtiA2XRgzSAm+vT8T8HGEIU8br3KkFEILw8Tfq8xgTcW69TfKr/OnWN31SBpZbDn
1Y6qtI1vIg/402jFXFtEnKShPfycEwRY2b5xQaIkwN40333yxhRAV3QGZ9IWKpaw
U4DNcdeVx6AP2hJBYbFBlyjvJGAxfhoOFxJ24=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:references:in-reply-to:content-type; s=default; bh=1WbCxOqPitYK
BgCrCU+N/4k1KNs=; b=BfDdQgS+r8e1p1seVTNDSciZ/ofo8Be81/KjYTYV3Zmv
PTPsMdDJUzmobAqZakSQrKWEt+F49aQnYmtPMVkWqc70A3HGM6M0Z2qVXBeg/w4/
T63DnrI3AXygBs4iaxVHcrAkabZFdSi4YQW8DNIuTKsKxMb0v2vTE7hsBCwCPQQ=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-Spam-SWARE-Status: No, score=-3.5 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_DNSWL_NONE,RCVD_IN_HOSTKARMA_NO,RCVD_IN_HOSTKARMA_YE,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
Message-ID: <51784CC0.7050304@t-online.de>
Date: Wed, 24 Apr 2013 23:21:04 +0200
From: Christian Franke <Christian DOT Franke AT t-online DOT de>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 SeaMonkey/2.16.2
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: Difference in 32/64-bit curl.
References: <51766C22 DOT 10702 AT bahnhof DOT se> <51770372 DOT 4070408 AT t-online DOT de> <20130424125930 DOT GQ26397 AT calimero DOT vinschen DOT de> <1UUzp1-23sI640 AT fwd56 DOT aul DOT t-online DOT de>
In-Reply-To: <1UUzp1-23sI640@fwd56.aul.t-online.de>
X-Virus-Found: No

--------------030508000900020902040509
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit

Christian Franke wrote:
> Corinna Vinschen wrote:
>> On Apr 23 23:56, Christian Franke wrote:
>>> Fredrik Rothamel wrote:
>>>> I just noticed that in 64-bit cygwin curl always include the
>>>> http-headers in the response.
>>>> (Old behaviour is to only include headers when -i option is
>>> specified) >
>>>> Is this an intentional change?
>>> Unlikely. In this case it should be possible to revert the default
>>> -i (--include) with --no-include.
>>>
>> What about a type issue?  int vs. long?
>>
> Yes, option is possibly set as int (bool) but retrieved as long:
>
> src/tool_cfgable.h:89:
>   bool include_headers;     /* ... */
>
> src/tool_operate.c:886:
>   my_setopt(curl, CURLOPT_HEADER, config->include_headers);
>
> lib/url.c:704:
> case CURLOPT_HEADER:
> ...
>   data->set.include_header = (0 != va_arg(param, long))?TRUE:FALSE;
>
>

The attached patch would actually fix the issue. Likely not the correct 
way to do this as va_arg(param, long) is also used for the other integer 
options.

Is this possibly an upstream bug which is hidden on Linux et al. due to 
a different x64 ABI (which requires register parameter zero extension) ?

Christian


--------------030508000900020902040509
Content-Type: text/x-patch;
 name="curl.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="curl.patch"

--- origsrc/curl-7.29.0/lib/url.c	2013-02-06 10:47:19.000000000 +0100
+++ src/curl-7.29.0/lib/url.c	2013-04-24 22:20:27.418755700 +0200
@@ -705,7 +705,7 @@ CURLcode Curl_setopt(struct SessionHandl
     /*
      * Set to include the header in the general data output stream.
      */
-    data->set.include_header = (0 != va_arg(param, long))?TRUE:FALSE;
+    data->set.include_header = (0 != va_arg(param, int))?TRUE:FALSE;
     break;
   case CURLOPT_NOPROGRESS:
     /*


--------------030508000900020902040509
Content-Type: text/plain; charset=us-ascii

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
--------------030508000900020902040509--

- Raw text -


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