]> git.sven.stormbind.net Git - sven/tclcurl.git/blobdiff - generic/tclcurl.c
Merge tag 'upstream/7.22.0+hg20151017'
[sven/tclcurl.git] / generic / tclcurl.c
index 8185c30720c6537159de9a2b9f2a8635c089a1eb..21c947cd369afb3b27c16b606d46a48dc192b5af 100755 (executable)
@@ -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;
@@ -854,6 +859,15 @@ curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData,
                     break;
                 case 3:
                     longNumber=CURL_SSLVERSION_SSLv3;
+                    break;
+                case 4:
+                    longNumber=CURL_SSLVERSION_TLSv1_0;
+                    break;
+                case 5:
+                    longNumber=CURL_SSLVERSION_TLSv1_1;
+                    break;
+                case 6:
+                    longNumber=CURL_SSLVERSION_TLSv1_2;
             }
             tmpObjPtr=Tcl_NewLongObj(longNumber);
             if (SetoptLong(interp,curlHandle,CURLOPT_SSLVERSION,