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;