From b1b3a7702eab3bf9ad45494c520d2a6c02b4bc70 Mon Sep 17 00:00:00 2001 From: Stephan Meier Date: Tue, 21 Jul 2015 14:23:05 +0200 Subject: [PATCH] Fix curl_formadd() for CURLFORM_CONTENTSLENGTH == 0 --- generic/tclcurl.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/generic/tclcurl.c b/generic/tclcurl.c index 5e7aea3..21c947c 100755 --- a/generic/tclcurl.c +++ b/generic/tclcurl.c @@ -748,8 +748,13 @@ curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData, /* fprintf(stdout,"Section contents: %s\n",Tcl_GetString(httpPostData[i+1]));*/ tmpStr=Tcl_GetStringFromObj(httpPostData[i+1],&curlformBufferSize); formArray[formArrayIndex].option = CURLFORM_COPYCONTENTS; - formArray[formArrayIndex].value = (char *) - memcpy(Tcl_Alloc(curlformBufferSize), tmpStr, curlformBufferSize); + + formArray[formArrayIndex].value = Tcl_Alloc((curlformBufferSize > 0) ? curlformBufferSize : 1); + if (curlformBufferSize > 0) { + memcpy((char *)formArray[formArrayIndex].value,tmpStr,curlformBufferSize); + } else { + memset((char *)formArray[formArrayIndex].value,0,1); + } formArrayIndex++; formArray[formArrayIndex].option = CURLFORM_CONTENTSLENGTH;