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:
|
||||
# install needed deps
|
||||
- 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 pylint
|
||||
- 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
|
||||
${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
|
||||
set +e
|
||||
xmlstarlet --version
|
||||
|
|
|
@ -273,6 +273,7 @@ def scan_package(work_path, cppcheck_path, jobs):
|
|||
'googletest': ['<gtest/gtest.h>'],
|
||||
'gtk': ['<gtk/gtk.h>', '<glib.h>', '<glib/', '<gnome.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
|
||||
'microsoft_sal': ['<sal.h>'],
|
||||
'motif': ['<X11/', '<Xm/'],
|
||||
|
|
Loading…
Reference in New Issue