Hello community, here is the log from the commit of package gsoap for openSUSE:Factory checked in at 2015-06-12 20:28:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gsoap (Old) and /work/SRC/openSUSE:Factory/.gsoap.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gsoap" Changes: -------- --- /work/SRC/openSUSE:Factory/gsoap/gsoap.changes 2015-05-02 17:39:38.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.gsoap.new/gsoap.changes 2015-06-12 20:28:14.000000000 +0200 @@ -1,0 +2,12 @@ +Tue Jun 2 11:19:46 UTC 2015 - jeng...@inai.de + +- Replace gsoap-02-typepuns.diff with better version from SF +- Add gsoap-allocator.diff to please UBSAN + +------------------------------------------------------------------- +Thu May 28 17:31:39 UTC 2015 - jeng...@inai.de + +- Drop unnecessary -version-info argument from _LDFLAGS variable + in gsoap-01-sharedlibs.diff (we have -release) + +------------------------------------------------------------------- New: ---- gsoap-allocator.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gsoap.spec ++++++ --- /var/tmp/diff_new_pack.5TUgae/_old 2015-06-12 20:28:15.000000000 +0200 +++ /var/tmp/diff_new_pack.5TUgae/_new 2015-06-12 20:28:15.000000000 +0200 @@ -17,7 +17,7 @@ Name: gsoap -%define lname libgsoap-2_8-0 +%define lname libgsoap-2_8 Version: 2.8.22 Release: 0 Summary: Toolkit for C/C++ server and client web service applications @@ -32,6 +32,7 @@ Patch1: gsoap-01-sharedlibs.diff Patch2: gsoap-02-typepuns.diff Patch3: gsoap-mindeflateratio.diff +Patch4: gsoap-allocator.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf BuildRequires: automake @@ -92,7 +93,7 @@ %prep %setup -q cmp gsoap/stdsoap2.cpp gsoap/stdsoap2.c -%patch -P 13 -P 1 -P 2 -P 3 -p1 +%patch -P 13 -P 1 -P 2 -P 3 -P 4 -p1 cp gsoap/stdsoap2.cpp gsoap/stdsoap2.c %build @@ -125,12 +126,17 @@ %files -n %lname %defattr(-,root,root) -%_libdir/*-2.8.so.* +%_libdir/*-2.8.so %files -n libgsoap-devel %defattr(-,root,root) %_includedir/* -%_libdir/*.so +%_libdir/libgsoap.so +%_libdir/libgsoapck.so +%_libdir/libgsoapssl.so +%_libdir/libgsoap++.so +%_libdir/libgsoapck++.so +%_libdir/libgsoapssl++.so %_libdir/pkgconfig/* %changelog ++++++ gsoap-01-sharedlibs.diff ++++++ --- /var/tmp/diff_new_pack.5TUgae/_old 2015-06-12 20:28:15.000000000 +0200 +++ /var/tmp/diff_new_pack.5TUgae/_new 2015-06-12 20:28:15.000000000 +0200 @@ -77,7 +77,7 @@ -libgsoapssl___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM +libgsoap_la_SOURCES = stdsoap2.c dom.c +libgsoap_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) -+libgsoap_la_LDFLAGS = -release ${PACKAGE_VERSION} -version-info 0:0:0 ++libgsoap_la_LDFLAGS = -release ${PACKAGE_VERSION} +libgsoap___la_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp +libgsoap___la_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) +libgsoap___la_LDFLAGS = ${libgsoap_la_LDFLAGS} ++++++ gsoap-02-typepuns.diff ++++++ --- /var/tmp/diff_new_pack.5TUgae/_old 2015-06-12 20:28:15.000000000 +0200 +++ /var/tmp/diff_new_pack.5TUgae/_new 2015-06-12 20:28:15.000000000 +0200 @@ -1,31 +1,86 @@ -From: Jan Engelhardt <jeng...@medozas.de> -Date: 2011-07-01 17:19:00 +0200 +References: https://sourceforge.net/p/gsoap2/patches/124/attachment/gsoap-aliasing.patch -src: fix invocation of undefined behavior - -The int type may have a stricter alignment than buf, and as such, -using *(int *)buf is prone to undefined behavior, usually manifesting -themselves in SIGBUS. - ---- - gsoap/stdsoap2.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -Index: gsoap-2.8.21/gsoap/stdsoap2.c -=================================================================== ---- gsoap-2.8.21.orig/gsoap/stdsoap2.c -+++ gsoap-2.8.21/gsoap/stdsoap2.c -@@ -3073,10 +3073,12 @@ int +diff -ur gsoap-2.8.orig/gsoap/plugin/wsaapi.c gsoap-2.8/gsoap/plugin/wsaapi.c +--- gsoap-2.8.orig/gsoap/plugin/wsaapi.c 2015-04-14 08:46:30.000000000 +0200 ++++ gsoap-2.8/gsoap/plugin/wsaapi.c 2015-05-05 09:19:27.985619710 +0200 +@@ -599,7 +599,7 @@ + k += 0x7FFFFFFF; + r2 = k; + k &= 0x8FFFFFFF; +- r2 += *(int*)soap->buf; ++ r2 += soap->buf[0] << 24 + soap->buf[1] << 16 + soap->buf[2] << 8 + soap->buf[3]; + #endif + r3 = soap_random; + r4 = soap_random; +diff -ur gsoap-2.8.orig/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp gsoap-2.8/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp +--- gsoap-2.8.orig/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp 2015-04-14 08:46:34.000000000 +0200 ++++ gsoap-2.8/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp 2015-05-05 09:01:31.633153838 +0200 +@@ -3105,11 +3105,11 @@ + int + SOAP_FMAC2 + soap_rand() +-{ unsigned char buf[4]; ++{ int buf; + if (!soap_ssl_init_done) + soap_ssl_init(); +- RAND_pseudo_bytes(buf, 4); +- return *(int*)buf; ++ RAND_pseudo_bytes((unsigned char*)&buf, sizeof(int)); ++ return buf; + } + #endif + #endif +diff -ur gsoap-2.8.orig/gsoap/stdsoap2.c gsoap-2.8/gsoap/stdsoap2.c +--- gsoap-2.8.orig/gsoap/stdsoap2.c 2015-04-14 08:46:36.000000000 +0200 ++++ gsoap-2.8/gsoap/stdsoap2.c 2015-05-05 09:01:31.633153838 +0200 +@@ -3105,11 +3105,11 @@ + int + SOAP_FMAC2 + soap_rand() +-{ unsigned char buf[4]; ++{ int buf; + if (!soap_ssl_init_done) + soap_ssl_init(); +- RAND_pseudo_bytes(buf, 4); +- return *(int*)buf; ++ RAND_pseudo_bytes((unsigned char*)&buf, sizeof(int)); ++ return buf; + } + #endif + #endif +diff -ur gsoap-2.8.orig/gsoap/stdsoap2.cpp gsoap-2.8/gsoap/stdsoap2.cpp +--- gsoap-2.8.orig/gsoap/stdsoap2.cpp 2015-04-14 08:46:36.000000000 +0200 ++++ gsoap-2.8/gsoap/stdsoap2.cpp 2015-05-05 09:01:31.633153838 +0200 +@@ -3105,11 +3105,11 @@ + int + SOAP_FMAC2 + soap_rand() +-{ unsigned char buf[4]; ++{ int buf; + if (!soap_ssl_init_done) + soap_ssl_init(); +- RAND_pseudo_bytes(buf, 4); +- return *(int*)buf; ++ RAND_pseudo_bytes((unsigned char*)&buf, sizeof(int)); ++ return buf; + } + #endif + #endif +diff -ur gsoap-2.8.orig/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp gsoap-2.8/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp +--- gsoap-2.8.orig/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp 2015-04-14 08:46:36.000000000 +0200 ++++ gsoap-2.8/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp 2015-05-05 09:01:31.633153838 +0200 +@@ -3105,11 +3105,11 @@ + int SOAP_FMAC2 soap_rand() - { unsigned char buf[4]; -+ int r; +-{ unsigned char buf[4]; ++{ int buf; if (!soap_ssl_init_done) soap_ssl_init(); - RAND_pseudo_bytes(buf, 4); +- RAND_pseudo_bytes(buf, 4); - return *(int*)buf; -+ memcpy(&r, buf, sizeof(r)); -+ return r; ++ RAND_pseudo_bytes((unsigned char*)&buf, sizeof(int)); ++ return buf; } #endif #endif ++++++ gsoap-allocator.diff ++++++ --- gsoap/stdsoap2.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) Index: gsoap-2.8.22/gsoap/stdsoap2.cpp =================================================================== --- gsoap-2.8.22.orig/gsoap/stdsoap2.cpp +++ gsoap-2.8.22/gsoap/stdsoap2.cpp @@ -7256,7 +7256,13 @@ SOAP_FMAC1 struct soap* SOAP_FMAC2 soap_versioning(soap_new)(soap_mode imode, soap_mode omode) -{ struct soap *soap = (struct soap*)malloc(sizeof(struct soap)); +{ +#ifdef __cplusplus + struct soap *soap = new struct soap; +#else + struct soap *soap = malloc(sizeof(struct soap)); + soap->dummy = NULL; +#endif if (soap) soap_versioning(soap_init)(soap, imode, omode); return soap; @@ -8983,7 +8989,14 @@ SOAP_FMAC1 struct soap* SOAP_FMAC2 soap_copy(const struct soap *soap) -{ return soap_copy_context((struct soap*)malloc(sizeof(struct soap)), soap); +{ +#ifdef __cplusplus + return soap_copy_context(new struct soap, soap); +#else + struct soap *s = malloc(sizeof(struct soap)); + s->dummy = NULL; + return soap_copy_context(s, soap); +#endif } #endif