Suggested change changes size
Development toolkit for Web Services and XML data bindings for C & C++
Brought to you by:
engelen
The proposed fix for CVE-2019-7659 on https://www.genivia.com/advisory.html "Bug in gSOAP versions 2.7.0 to 2.8.74 for applications built with the WITH_COOKIES flag enabled (Jan 14, 2019)" replaces a size_t with an int in a function signature in the public stdsoap2.h header. This changes the size of the symbol on some architecture. The issue can be avoided if ssize_t is used instead;
gsoap/stdsoap2.c and gsoap/stdsoap2.cpp;
SOAP_FMAC1
ssize_t // changed
SOAP_FMAC2
soap_encode_url(const char *s, char *t, ssize_t len) // changed
{
int c;
ssize_t n = len; // changed
if (n <= 0) return 0; // added
gsoap/stdsoap2.h
SOAP_FMAC1 ssize_t SOAP_FMAC2 soap_encode_url(const char*, char*, ssize_t);
Wouldn't consider this a bug, rather a rebuild issue perhaps . Newer versions do change the internals occasionally, requiring lib updates, but of course only when it does not affect the public API. This is not a public API function but an internal one.
Where is this function documented as internal? It is declared in stdsoap2.h and is exported from the shared libaries.