Hello community,

here is the log from the commit of package tclcurl for openSUSE:Factory checked 
in at 2016-06-23 13:37:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tclcurl (Old)
 and      /work/SRC/openSUSE:Factory/.tclcurl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tclcurl"

Changes:
--------
--- /work/SRC/openSUSE:Factory/tclcurl/tclcurl.changes  2014-09-09 
19:01:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.tclcurl.new/tclcurl.changes     2016-06-23 
13:37:19.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Jun 21 10:01:55 UTC 2016 - m...@suse.com
+
+- bsc#907545, tclcurl-types.patch: Fix segfaults in the multi
+  interface, caused by passing incompatible pointers.
+
+-------------------------------------------------------------------

New:
----
  tclcurl-types.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ tclcurl.spec ++++++
--- /var/tmp/diff_new_pack.PYEiE0/_old  2016-06-23 13:37:20.000000000 +0200
+++ /var/tmp/diff_new_pack.PYEiE0/_new  2016-06-23 13:37:20.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package tclcurl
 #
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2012 Guido Berhoerster.
 #
 # All modifications and additions to the file contributed by third parties
@@ -25,6 +25,7 @@
 Group:          Development/Languages/Tcl
 Url:            
http://personal.telefonica.terra.es/web/getleft/tclcurl/index.html
 Source:         
http://personal.telefonica.terra.es/web/getleft/tclcurl/download/tarball/TclCurl-%{version}.tar.gz
+Patch0:         tclcurl-types.patch
 BuildRequires:  bc
 BuildRequires:  libcurl-devel >= 7.21.7
 BuildRequires:  tcl-devel
@@ -36,6 +37,7 @@
 
 %prep
 %setup -q -n TclCurl-%{version}
+%patch0
 
 chmod 644 *.txt doc/*.txt doc/*.html
 

++++++ tclcurl-types.patch ++++++
--- generic/multi.c.orig
+++ generic/multi.c
@@ -165,12 +165,12 @@ curlMultiObjCmd (ClientData clientData,
     switch(tableIndex) {
         case 0:
 /*            fprintf(stdout,"Multi add handle\n"); */
-            errorCode=curlAddMultiHandle(interp,curlMultiData->mcurl,objv[2]);
+            errorCode=curlAddMultiHandle(interp,curlMultiData,objv[2]);
             return curlReturnCURLMcode(interp,errorCode);
             break;
         case 1:
 /*            fprintf(stdout,"Multi remove handle\n"); */
-            
errorCode=curlRemoveMultiHandle(interp,curlMultiData->mcurl,objv[2]);
+            errorCode=curlRemoveMultiHandle(interp,curlMultiData,objv[2]);
             return curlReturnCURLMcode(interp,errorCode);
             break;
         case 2:
@@ -184,7 +184,7 @@ curlMultiObjCmd (ClientData clientData,
             break;
         case 4:
 /*            fprintf(stdout,"Multi getInfo\n"); */
-            curlMultiGetInfo(interp,curlMultiData->mcurl);
+            curlMultiGetInfo(interp,curlMultiData);
             break;
         case 5:
 /*            fprintf(stdout,"Multi activeTransfers\n"); */
@@ -220,7 +220,7 @@ curlMultiObjCmd (ClientData clientData,
  *----------------------------------------------------------------------
  */
 CURLMcode
-curlAddMultiHandle(Tcl_Interp *interp,CURLM *curlMultiHandlePtr
+curlAddMultiHandle(Tcl_Interp *interp,struct curlMultiObjData *curlMultiData
         ,Tcl_Obj *objvPtr) {
 
     struct curlObjData        *curlDataPtr;
@@ -236,9 +236,9 @@ curlAddMultiHandle(Tcl_Interp *interp,CU
         return TCL_ERROR;
     }
 
-    errorCode=curl_multi_add_handle(curlMultiHandlePtr,curlDataPtr->curl);
+    errorCode=curl_multi_add_handle(curlMultiData->mcurl,curlDataPtr->curl);
 
-    curlEasyHandleListAdd(curlMultiHandlePtr,curlDataPtr->curl
+    curlEasyHandleListAdd(curlMultiData,curlDataPtr->curl
             ,Tcl_GetString(objvPtr));
 
     return errorCode;
@@ -262,14 +262,14 @@ curlAddMultiHandle(Tcl_Interp *interp,CU
  *----------------------------------------------------------------------
  */
 CURLMcode
-curlRemoveMultiHandle(Tcl_Interp *interp,CURLM *curlMultiHandle
+curlRemoveMultiHandle(Tcl_Interp *interp, struct curlMultiObjData 
*curlMultiData
         ,Tcl_Obj *objvPtr) {
     struct curlObjData        *curlDataPtr;
     CURLMcode                  errorCode;
 
     curlDataPtr=curlGetEasyHandle(interp,objvPtr);
-    errorCode=curl_multi_remove_handle(curlMultiHandle,curlDataPtr->curl);
-    curlEasyHandleListRemove(curlMultiHandle,curlDataPtr->curl);
+    errorCode=curl_multi_remove_handle(curlMultiData->mcurl,curlDataPtr->curl);
+    curlEasyHandleListRemove(curlMultiData,curlDataPtr->curl);
 
     curlCloseFiles(curlDataPtr);
     curlResetPostData(curlDataPtr);
@@ -372,12 +372,12 @@ curlMultiDeleteCmd(ClientData clientData
  *----------------------------------------------------------------------
  */
 int
-curlMultiGetInfo(Tcl_Interp *interp,CURLM *curlMultiHandlePtr) {
+curlMultiGetInfo(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData) {
     struct CURLMsg        *multiInfo;
     int                    msgLeft;
     Tcl_Obj               *resultPtr;
 
-    multiInfo=curl_multi_info_read(curlMultiHandlePtr, &msgLeft);
+    multiInfo=curl_multi_info_read(curlMultiData->mcurl, &msgLeft);
     resultPtr=Tcl_NewListObj(0,(Tcl_Obj **)NULL); 
     if (multiInfo==NULL) {
         Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewStringObj("",-1));
@@ -386,7 +386,7 @@ curlMultiGetInfo(Tcl_Interp *interp,CURL
         Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewIntObj(0));
     } else {
         Tcl_ListObjAppendElement(interp,resultPtr,
-            
Tcl_NewStringObj(curlGetEasyName(curlMultiHandlePtr,multiInfo->easy_handle),-1));
+            
Tcl_NewStringObj(curlGetEasyName(curlMultiData,multiInfo->easy_handle),-1));
         
Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewIntObj(multiInfo->msg));
         
Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewIntObj(multiInfo->data.result));
         Tcl_ListObjAppendElement(interp,resultPtr,Tcl_NewIntObj(msgLeft));
--- generic/multi.h.orig
+++ generic/multi.h
@@ -73,15 +73,15 @@ int curlInitMultiObjCmd (ClientData clie
 int curlMultiObjCmd (ClientData clientData, Tcl_Interp *interp,
     int objc,Tcl_Obj *CONST objv[]);
 
-CURLMcode curlAddMultiHandle(Tcl_Interp *interp,CURLM *curlMultiHandle
+CURLMcode curlAddMultiHandle(Tcl_Interp *interp, struct curlMultiObjData 
*curlMultiData
         ,Tcl_Obj *objvPtr);
 
-CURLMcode curlRemoveMultiHandle(Tcl_Interp *interp,CURLM *curlMultiHandle
+CURLMcode curlRemoveMultiHandle(Tcl_Interp *interp, struct curlMultiObjData 
*curlMultiData
         ,Tcl_Obj *objvPtr);
 
 int curlMultiPerform(Tcl_Interp *interp,CURLM *curlMultiHandle);
 
-int curlMultiGetInfo(Tcl_Interp *interp,CURLM *curlMultiHandlePtr);
+int curlMultiGetInfo(Tcl_Interp *interp,struct curlMultiObjData 
*curlMultiData);
 
 int curlMultiGetActiveTransfers( struct curlMultiObjData *curlMultiData);
 int curlMultiActiveTransfers(Tcl_Interp *interp, struct curlMultiObjData 
*curlMultiData);
--- generic/tclcurl.c.orig
+++ generic/tclcurl.c
@@ -4161,7 +4161,7 @@ curlShareInitObjCmd (ClientData clientDa
         int objc,Tcl_Obj *CONST objv[]) {
 
     Tcl_Obj               *resultPtr;
-    CURL                  *shcurlHandle;
+    CURLSH                *shcurlHandle;
     struct shcurlObjData  *shcurlData;
     char                  *shandleName;
 

Reply via email to