libcurl.cfg: Add library configuration for libcurl (#2120)
Add curl_easy_*() functions and deprecated functions with warnings. Add tests and prepare donate-cpu.py Reference: https://curl.haxx.se/libcurl/c/
This commit is contained in:
parent
8782a5f5e4
commit
a501f65c8c
|
@ -18,7 +18,7 @@ env:
|
||||||
before_install:
|
before_install:
|
||||||
# install needed deps
|
# install needed deps
|
||||||
- travis_retry sudo apt-get update -qq
|
- travis_retry sudo apt-get update -qq
|
||||||
- travis_retry sudo apt-get install -qq python-pygments qt5-default qt5-qmake qtbase5-dev qtcreator libxml2-utils libpcre3 gdb unzip wx-common xmlstarlet python3-dev liblua5.3-dev
|
- travis_retry sudo apt-get install -qq python-pygments qt5-default qt5-qmake qtbase5-dev qtcreator libxml2-utils libpcre3 gdb unzip wx-common xmlstarlet python3-dev liblua5.3-dev libcurl3
|
||||||
- travis_retry python2 -m pip install --user pytest==4.6.4
|
- travis_retry python2 -m pip install --user pytest==4.6.4
|
||||||
- travis_retry python2 -m pip install --user pylint
|
- travis_retry python2 -m pip install --user pylint
|
||||||
- travis_retry python2 -m pip install --user unittest2
|
- travis_retry python2 -m pip install --user unittest2
|
||||||
|
|
|
@ -0,0 +1,487 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<def format="2">
|
||||||
|
<!-- libcurl C API. See https://curl.haxx.se/libcurl/c/ -->
|
||||||
|
<!-- The libcurl C API is typically include by '#include <curl/curl.h>' -->
|
||||||
|
<!-- ########## libcurl Types ########## -->
|
||||||
|
<podtype name="CURLcode"/>
|
||||||
|
<!-- ########## libcurl defines / macros ########## -->
|
||||||
|
<define name="CURLE_OK" value="(0)"/>
|
||||||
|
<!-- ########## libcurl Allocation / Deallocation ########## -->
|
||||||
|
<resource>
|
||||||
|
<alloc init="true">curl_easy_init</alloc>
|
||||||
|
<alloc init="true">curl_easy_duphandle</alloc>
|
||||||
|
<dealloc>curl_easy_cleanup</dealloc>
|
||||||
|
</resource>
|
||||||
|
<memory>
|
||||||
|
<alloc init="true">curl_easy_escape</alloc>
|
||||||
|
<alloc init="true">curl_easy_unescape</alloc>
|
||||||
|
<alloc init="true">curl_escape</alloc>
|
||||||
|
<alloc init="true">curl_unescape</alloc>
|
||||||
|
<dealloc>curl_free</dealloc>
|
||||||
|
</memory>
|
||||||
|
<memory>
|
||||||
|
<alloc init="true">curl_getenv</alloc>
|
||||||
|
<alloc init="true">curl_maprintf</alloc>
|
||||||
|
<alloc init="true">curl_mvaprintf</alloc>
|
||||||
|
<dealloc>free</dealloc>
|
||||||
|
</memory>
|
||||||
|
<!-- ########## libcurl C API Functions ########## -->
|
||||||
|
<!-- void curl_easy_cleanup(CURL * handle ); -->
|
||||||
|
<function name="curl_easy_cleanup">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="void"/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- CURL *curl_easy_duphandle(CURL *handle ); -->
|
||||||
|
<function name="curl_easy_duphandle">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURL *"/>
|
||||||
|
<use-retval/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- char *curl_easy_escape( CURL * curl , const char * string , int length ); -->
|
||||||
|
<function name="curl_easy_escape">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="char *"/>
|
||||||
|
<use-retval/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<not-bool/>
|
||||||
|
<valid>0:</valid>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... ); -->
|
||||||
|
<function name="curl_easy_getinfo">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURLcode"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3" direction="out">
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- CURL *curl_easy_init( ); -->
|
||||||
|
<function name="curl_easy_init">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURL *"/>
|
||||||
|
<use-retval/>
|
||||||
|
</function>
|
||||||
|
<!-- CURLcode curl_easy_pause(CURL *handle , int bitmask ); -->
|
||||||
|
<function name="curl_easy_pause">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURLcode"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- CURLcode curl_easy_perform(CURL * easy_handle ); -->
|
||||||
|
<function name="curl_easy_perform">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURLcode"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- CURLcode curl_easy_recv( CURL * curl , void * buffer , size_t buflen , size_t * n ); -->
|
||||||
|
<function name="curl_easy_recv">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURLcode"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="out">
|
||||||
|
<minsize type="argvalue" arg="3"/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<valid>0:</valid>
|
||||||
|
</arg>
|
||||||
|
<arg nr="4" direction="out">
|
||||||
|
<not-null/>
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- void curl_easy_reset(CURL *handle ); -->
|
||||||
|
<function name="curl_easy_reset">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="void"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- CURLcode curl_easy_send( CURL * curl , const void * buffer , size_t buflen , size_t * n ); -->
|
||||||
|
<function name="curl_easy_send">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURLcode"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<minsize type="argvalue" arg="3"/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<valid>0:</valid>
|
||||||
|
</arg>
|
||||||
|
<arg nr="4" direction="out">
|
||||||
|
<not-null/>
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter); -->
|
||||||
|
<function name="curl_easy_setopt">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURLcode"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- const char *curl_easy_strerror(CURLcode errornum); -->
|
||||||
|
<function name="curl_easy_strerror">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="const char *"/>
|
||||||
|
<use-retval/>
|
||||||
|
<arg nr="1" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- char *curl_easy_unescape( CURL * curl , const char * url , int inlength , int * outlength ); -->
|
||||||
|
<function name="curl_easy_unescape">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="char *"/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<valid>0:</valid>
|
||||||
|
</arg>
|
||||||
|
<arg nr="4" direction="out">
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- CURLcode curl_easy_upkeep(CURL * handle ); -->
|
||||||
|
<function name="curl_easy_upkeep">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURLcode"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- char *curl_escape( const char * url , int length ); -->
|
||||||
|
<function name="curl_escape">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="char *"/>
|
||||||
|
<use-retval/>
|
||||||
|
<warn severity="style" alternatives="curl_easy_escape" reason="Obsolete"/>
|
||||||
|
<arg nr="1" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<not-bool/>
|
||||||
|
<valid>0:</valid>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- void curl_free( char * ptr ); -->
|
||||||
|
<function name="curl_free">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="void"/>
|
||||||
|
<arg nr="1"/>
|
||||||
|
</function>
|
||||||
|
<!-- char *curl_getenv(const char * name ); -->
|
||||||
|
<function name="curl_getenv">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="char *"/>
|
||||||
|
<use-retval/>
|
||||||
|
<warn severity="style">This function will be removed from the public libcurl API in a near future. It will instead be made "available" by source code access only, and then as curlx_getenv().</warn>
|
||||||
|
<arg nr="1" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- char *curl_maprintf(const char * format , ...); -->
|
||||||
|
<function name="curl_maprintf">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="char *"/>
|
||||||
|
<use-retval/>
|
||||||
|
<warn severity="style">These functions will be removed from the public libcurl API in the future. Do not use them in any new programs or projects.</warn>
|
||||||
|
<formatstr/>
|
||||||
|
<arg nr="1" direction="in">
|
||||||
|
<formatstr/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- int curl_mfprintf(FILE * fd , const char * format , ...); -->
|
||||||
|
<function name="curl_mfprintf">
|
||||||
|
<returnValue type="int"/>
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style" alternatives="fprintf" reason="Obsolete"/>
|
||||||
|
<arg nr="1" direction="inout">
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<formatstr/>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<formatstr/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- int curl_mprintf(const char * format , ...); -->
|
||||||
|
<function name="curl_mprintf">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="int"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style" alternatives="printf" reason="Obsolete"/>
|
||||||
|
<formatstr/>
|
||||||
|
<arg nr="1" direction="in">
|
||||||
|
<formatstr/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- int curl_msnprintf(char * buffer , size_t maxlength , const char * format , ...); -->
|
||||||
|
<function name="curl_msnprintf">
|
||||||
|
<returnValue type="int"/>
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style" alternatives="snprintf" reason="Obsolete"/>
|
||||||
|
<arg nr="1" direction="out">
|
||||||
|
<not-uninit/>
|
||||||
|
<minsize type="argvalue" arg="2"/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<valid>0:</valid>
|
||||||
|
</arg>
|
||||||
|
<formatstr/>
|
||||||
|
<arg nr="3" direction="in">
|
||||||
|
<formatstr/>
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- int curl_msprintf(char * buffer , const char * format , ...); -->
|
||||||
|
<function name="curl_msprintf">
|
||||||
|
<returnValue type="int"/>
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style" alternatives="sprintf" reason="Obsolete"/>
|
||||||
|
<arg nr="1" direction="out">
|
||||||
|
<not-uninit/>
|
||||||
|
<minsize type="strlen" arg="2"/>
|
||||||
|
</arg>
|
||||||
|
<formatstr/>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<formatstr/>
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- CURLMcode curl_multi_socket(CURLM * multi_handle, curl_socket_t sockfd, int *running_handles); -->
|
||||||
|
<function name="curl_multi_socket">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURLMcode"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style" alternatives="curl_multi_socket_action" reason="Obsolete">Usage of curl_multi_socket is deprecated, whereas the function is equivalent to curl_multi_socket_action with ev_bitmask set to 0.</warn>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3" direction="out">
|
||||||
|
<not-null/>
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- CURLMcode curl_multi_socket_all(CURLM *multi_handle, int *running_handles); -->
|
||||||
|
<function name="curl_multi_socket_all">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="CURLMcode"/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style" alternatives="curl_multi_socket_action" reason="Obsolete"/>
|
||||||
|
<arg nr="1">
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="out">
|
||||||
|
<not-null/>
|
||||||
|
<not-bool/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- char *curl_mvaprintf(const char * format , va_list args ); -->
|
||||||
|
<function name="curl_mvaprintf">
|
||||||
|
<returnValue type="char *"/>
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<use-retval/>
|
||||||
|
<warn severity="style">These functions will be removed from the public libcurl API in the future. Do not use them in any new programs or projects.</warn>
|
||||||
|
<arg nr="1" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<formatstr/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2"/>
|
||||||
|
</function>
|
||||||
|
<!-- int curl_mvfprintf(FILE * fd , const char * format , va_list args ); -->
|
||||||
|
<function name="curl_mvfprintf">
|
||||||
|
<returnValue type="int"/>
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style" alternatives="vfprintf" reason="Obsolete"/>
|
||||||
|
<arg nr="1" direction="inout">
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<formatstr/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3"/>
|
||||||
|
</function>
|
||||||
|
<!-- int curl_mvprintf(const char * format , va_list args ); -->
|
||||||
|
<function name="curl_mvprintf">
|
||||||
|
<returnValue type="int"/>
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style" alternatives="vprintf" reason="Obsolete"/>
|
||||||
|
<arg nr="1" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<formatstr/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2"/>
|
||||||
|
</function>
|
||||||
|
<!-- int curl_mvsnprintf(char * buffer , size_t maxlength , const char * format , va_list args ); -->
|
||||||
|
<function name="curl_mvsnprintf">
|
||||||
|
<returnValue type="int"/>
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style" alternatives="vsnprintf" reason="Obsolete"/>
|
||||||
|
<arg nr="1" direction="out">
|
||||||
|
<not-uninit/>
|
||||||
|
<minsize type="argvalue" arg="2"/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<valid>0:</valid>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3" direction="in">
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
<formatstr/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="4"/>
|
||||||
|
</function>
|
||||||
|
<!-- int curl_mvsprintf(char * buffer , const char * format , va_list args ); -->
|
||||||
|
<function name="curl_mvsprintf">
|
||||||
|
<returnValue type="int"/>
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style" alternatives="vsprintf" reason="Obsolete"/>
|
||||||
|
<arg nr="1" direction="out">
|
||||||
|
<not-null/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
<formatstr/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3"/>
|
||||||
|
</function>
|
||||||
|
<!-- int curl_strequal(char * str1 , char * str2 ); -->
|
||||||
|
<function name="curl_strequal">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="int"/>
|
||||||
|
<use-retval/>
|
||||||
|
<pure/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style">These functions will be removed from the public libcurl API in a near future. They will instead be made "available" by source code access only, and then as curlx_strequal() and curlx_strenqual().</warn>
|
||||||
|
<arg nr="1" direction="in">
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
<strz/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
<strz/>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- int curl_strnequal(char * str1 , char * str2 , size_t len ); -->
|
||||||
|
<function name="curl_strnequal">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="int"/>
|
||||||
|
<use-retval/>
|
||||||
|
<pure/>
|
||||||
|
<leak-ignore/>
|
||||||
|
<warn severity="style">These functions will be removed from the public libcurl API in a near future. They will instead be made "available" by source code access only, and then as curlx_strequal() and curlx_strenqual().</warn>
|
||||||
|
<arg nr="1" direction="in">
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-null/>
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="3" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<not-bool/>
|
||||||
|
<valid>0:</valid>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
<!-- char *curl_unescape( const char * url , int length ); -->
|
||||||
|
<function name="curl_unescape">
|
||||||
|
<noreturn>false</noreturn>
|
||||||
|
<returnValue type="char *"/>
|
||||||
|
<use-retval/>
|
||||||
|
<warn severity="style" alternatives="curl_easy_unescape" reason="Obsolete"/>
|
||||||
|
<arg nr="1" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
</arg>
|
||||||
|
<arg nr="2" direction="in">
|
||||||
|
<not-uninit/>
|
||||||
|
<not-bool/>
|
||||||
|
<valid>0:</valid>
|
||||||
|
</arg>
|
||||||
|
</function>
|
||||||
|
</def>
|
|
@ -0,0 +1,86 @@
|
||||||
|
|
||||||
|
// Test library configuration for libcurl.cfg
|
||||||
|
//
|
||||||
|
// Usage:
|
||||||
|
// $ cppcheck --check-library --library=libcurl --enable=information --error-exitcode=1 --inline-suppr --suppress=missingIncludeSystem test/cfg/libcurl.c
|
||||||
|
// =>
|
||||||
|
// No warnings about bad library configuration, unmatched suppressions, etc. exitcode=0
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <curl/curl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void validCode()
|
||||||
|
{
|
||||||
|
CURL *curl = curl_easy_init();
|
||||||
|
if (curl) {
|
||||||
|
CURLcode res;
|
||||||
|
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
||||||
|
res = curl_easy_perform(curl);
|
||||||
|
if (res != CURLE_OK) {
|
||||||
|
printf("error");
|
||||||
|
} else {
|
||||||
|
long response_code;
|
||||||
|
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
|
||||||
|
printf("%ld", response_code);
|
||||||
|
char * pStr = curl_easy_escape(curl, "a", 1);
|
||||||
|
if (pStr)
|
||||||
|
printf("%s", pStr);
|
||||||
|
curl_free(pStr);
|
||||||
|
curl_easy_reset(curl);
|
||||||
|
}
|
||||||
|
curl_easy_cleanup(curl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ignoredReturnValue(CURL * handle)
|
||||||
|
{
|
||||||
|
// cppcheck-suppress ignoredReturnValue
|
||||||
|
curl_easy_strerror(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void resourceLeak_curl_easy_init()
|
||||||
|
{
|
||||||
|
CURL *curl = curl_easy_init();
|
||||||
|
printf("%p", curl);
|
||||||
|
// cppcheck-suppress resourceLeak
|
||||||
|
}
|
||||||
|
|
||||||
|
void resourceLeak_curl_easy_duphandle(CURL * handle)
|
||||||
|
{
|
||||||
|
CURL *curl = curl_easy_duphandle(handle);
|
||||||
|
printf("%p", curl);
|
||||||
|
// cppcheck-suppress resourceLeak
|
||||||
|
}
|
||||||
|
|
||||||
|
void memleak_curl_easy_escape(CURL * handle)
|
||||||
|
{
|
||||||
|
char * pStr = curl_easy_escape(handle, "a", 1);
|
||||||
|
if (pStr)
|
||||||
|
printf("%s", pStr);
|
||||||
|
// cppcheck-suppress memleak
|
||||||
|
}
|
||||||
|
|
||||||
|
void nullPointer(CURL * handle)
|
||||||
|
{
|
||||||
|
char * buf[10] = {0};
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
curl_easy_recv(handle, buf, 10, &len);
|
||||||
|
// cppcheck-suppress nullPointer
|
||||||
|
curl_easy_recv(handle, buf, 10, NULL);
|
||||||
|
curl_easy_send(handle, buf, 10, &len);
|
||||||
|
// cppcheck-suppress nullPointer
|
||||||
|
curl_easy_send(handle, buf, 10, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void uninitvar(CURL * handle)
|
||||||
|
{
|
||||||
|
char * bufInit[10] = {0};
|
||||||
|
char * bufUninit;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
curl_easy_send(handle, bufInit, 10, &len);
|
||||||
|
// cppcheck-suppress uninitvar
|
||||||
|
curl_easy_send(handle, bufUninit, 10, &len);
|
||||||
|
}
|
|
@ -226,6 +226,33 @@ else
|
||||||
fi
|
fi
|
||||||
${CPPCHECK} ${CPPCHECK_OPT} --library=lua ${DIR}lua.c
|
${CPPCHECK} ${CPPCHECK_OPT} --library=lua ${DIR}lua.c
|
||||||
|
|
||||||
|
# libcurl.c
|
||||||
|
set +e
|
||||||
|
pkg-config --version
|
||||||
|
PKGCONFIG_RETURNCODE=$?
|
||||||
|
set -e
|
||||||
|
if [ $PKGCONFIG_RETURNCODE -ne 0 ]; then
|
||||||
|
echo "pkg-config needed to retrieve libcurl configuration is not available, skipping syntax check."
|
||||||
|
else
|
||||||
|
set +e
|
||||||
|
LIBCURLCONFIG=$(pkg-config --cflags libcurl)
|
||||||
|
LIBCURLCONFIG_RETURNCODE=$?
|
||||||
|
set -e
|
||||||
|
if [ $LIBCURLCONFIG_RETURNCODE -eq 0 ]; then
|
||||||
|
set +e
|
||||||
|
echo -e "#include <curl/curl.h>" | ${CC} ${CC_OPT} ${LIBCURLCONFIG} -x c -
|
||||||
|
LIBCURLCONFIG_RETURNCODE=$?
|
||||||
|
set -e
|
||||||
|
if [ $LIBCURLCONFIG_RETURNCODE -ne 0 ]; then
|
||||||
|
echo "libcurl not completely present or not working, skipping syntax check with ${CC}."
|
||||||
|
else
|
||||||
|
echo "libcurl found and working, checking syntax with ${CC} now."
|
||||||
|
${CC} ${CC_OPT} ${LIBCURLCONFIG} ${DIR}libcurl.c
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
${CPPCHECK} ${CPPCHECK_OPT} --library=libcurl ${DIR}libcurl.c
|
||||||
|
|
||||||
# Check the syntax of the defines in the configuration files
|
# Check the syntax of the defines in the configuration files
|
||||||
set +e
|
set +e
|
||||||
xmlstarlet --version
|
xmlstarlet --version
|
||||||
|
|
|
@ -273,6 +273,7 @@ def scan_package(work_path, cppcheck_path, jobs):
|
||||||
'googletest': ['<gtest/gtest.h>'],
|
'googletest': ['<gtest/gtest.h>'],
|
||||||
'gtk': ['<gtk/gtk.h>', '<glib.h>', '<glib/', '<gnome.h>'],
|
'gtk': ['<gtk/gtk.h>', '<glib.h>', '<glib/', '<gnome.h>'],
|
||||||
'libcerror': ['<libcerror.h>'],
|
'libcerror': ['<libcerror.h>'],
|
||||||
|
# 'libcurl': ['<curl/curl.h>'], <= enable after release of version 1.89
|
||||||
# 'lua': ['<lua.h>', '"lua.h"'], <= enable after release of version 1.89
|
# 'lua': ['<lua.h>', '"lua.h"'], <= enable after release of version 1.89
|
||||||
'microsoft_sal': ['<sal.h>'],
|
'microsoft_sal': ['<sal.h>'],
|
||||||
'motif': ['<X11/', '<Xm/'],
|
'motif': ['<X11/', '<Xm/'],
|
||||||
|
|
Loading…
Reference in New Issue