Hi,

Please find the latest report on new defect(s) introduced to LibreOffice found 
with Coverity Scan.

1 new defect(s) introduced to LibreOffice found with Coverity Scan.


New defect(s) Reported-by: Coverity Scan
Showing 1 of 1 defect(s)


** CID 1515996:    (CHECKED_RETURN)
/linguistic/source/translate.cxx: 19 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
/linguistic/source/translate.cxx: 24 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
/linguistic/source/translate.cxx: 33 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
/linguistic/source/translate.cxx: 39 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
/linguistic/source/translate.cxx: 21 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
/linguistic/source/translate.cxx: 20 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()


________________________________________________________________________________________________________
*** CID 1515996:    (CHECKED_RETURN)
/linguistic/source/translate.cxx: 19 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
13                       const OString& rData)
14     {
15         constexpr tools::Long CURL_TIMEOUT = 10L;
16     
17         std::unique_ptr<CURL, std::function<void(CURL*)>> 
curl(curl_easy_init(),
18                                                                [](CURL* p) { 
curl_easy_cleanup(p); });
>>>     CID 1515996:    (CHECKED_RETURN)
>>>     Calling "curl_easy_setopt(curl.get(), CURLOPT_URL, rAPIUrl->getStr())" 
>>> without checking return value. This library function may fail and return an 
>>> error code.
19         curl_easy_setopt(curl.get(), CURLOPT_URL, rAPIUrl.getStr());
20         curl_easy_setopt(curl.get(), CURLOPT_FAILONERROR, 1L);
21         curl_easy_setopt(curl.get(), CURLOPT_TIMEOUT, CURL_TIMEOUT);
22     
23         std::string response_body;
24         curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION,
/linguistic/source/translate.cxx: 24 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
18                                                                [](CURL* p) { 
curl_easy_cleanup(p); });
19         curl_easy_setopt(curl.get(), CURLOPT_URL, rAPIUrl.getStr());
20         curl_easy_setopt(curl.get(), CURLOPT_FAILONERROR, 1L);
21         curl_easy_setopt(curl.get(), CURLOPT_TIMEOUT, CURL_TIMEOUT);
22     
23         std::string response_body;
>>>     CID 1515996:    (CHECKED_RETURN)
>>>     Calling "curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION, 
>>> +linguistic::Translate(rtl::OString const &, rtl::OString const &, 
>>> rtl::OString const &, rtl::OString const &)::[lambda(void *, unsigned long, 
>>> unsigned long, void *) (instance 1)]().operator size_t (*)(void *, size_t, 
>>> size_t, void *)())" without checking return value. This library function 
>>> may fail and return an error code.
24         curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION,
25                          +[](void* buffer, size_t size, size_t nmemb, void* 
userp) -> size_t {
26                              if (!userp)
27                                  return 0;
28                              std::string* response = 
static_cast<std::string*>(userp);
29                              size_t real_size = size * nmemb;
/linguistic/source/translate.cxx: 33 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
27                                  return 0;
28                              std::string* response = 
static_cast<std::string*>(userp);
29                              size_t real_size = size * nmemb;
30                              response->append(static_cast<char*>(buffer), 
real_size);
31                              return real_size;
32                          });
>>>     CID 1515996:    (CHECKED_RETURN)
>>>     Calling "curl_easy_setopt(curl.get(), CURLOPT_WRITEDATA, 
>>> static_cast<void *>(&response_body))" without checking return value. This 
>>> library function may fail and return an error code.
33         curl_easy_setopt(curl.get(), CURLOPT_WRITEDATA, 
static_cast<void*>(&response_body));
34         OString aLang(curl_easy_escape(curl.get(), rTargetLang.getStr(), 
rTargetLang.getLength()));
35         OString aAuthKey(curl_easy_escape(curl.get(), rAuthKey.getStr(), 
rAuthKey.getLength()));
36         OString aData(curl_easy_escape(curl.get(), rData.getStr(), 
rData.getLength()));
37         OString aPostData("auth_key=" + aAuthKey + "&target_lang=" + aLang + 
"&text=" + aData);
38     
/linguistic/source/translate.cxx: 39 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
33         curl_easy_setopt(curl.get(), CURLOPT_WRITEDATA, 
static_cast<void*>(&response_body));
34         OString aLang(curl_easy_escape(curl.get(), rTargetLang.getStr(), 
rTargetLang.getLength()));
35         OString aAuthKey(curl_easy_escape(curl.get(), rAuthKey.getStr(), 
rAuthKey.getLength()));
36         OString aData(curl_easy_escape(curl.get(), rData.getStr(), 
rData.getLength()));
37         OString aPostData("auth_key=" + aAuthKey + "&target_lang=" + aLang + 
"&text=" + aData);
38     
>>>     CID 1515996:    (CHECKED_RETURN)
>>>     Calling "curl_easy_setopt(curl.get(), CURLOPT_POSTFIELDS, 
>>> aPostData.getStr())" without checking return value. This library function 
>>> may fail and return an error code.
39         curl_easy_setopt(curl.get(), CURLOPT_POSTFIELDS, aPostData.getStr());
40         CURLcode cc = curl_easy_perform(curl.get());
41         if (cc != CURLE_OK)
42         {
43             SAL_WARN("linguistic",
44                      "Translate: CURL perform returned with error: " << 
static_cast<sal_Int32>(cc));
/linguistic/source/translate.cxx: 21 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
15         constexpr tools::Long CURL_TIMEOUT = 10L;
16     
17         std::unique_ptr<CURL, std::function<void(CURL*)>> 
curl(curl_easy_init(),
18                                                                [](CURL* p) { 
curl_easy_cleanup(p); });
19         curl_easy_setopt(curl.get(), CURLOPT_URL, rAPIUrl.getStr());
20         curl_easy_setopt(curl.get(), CURLOPT_FAILONERROR, 1L);
>>>     CID 1515996:    (CHECKED_RETURN)
>>>     Calling "curl_easy_setopt(curl.get(), CURLOPT_TIMEOUT, 10L)" without 
>>> checking return value. This library function may fail and return an error 
>>> code.
21         curl_easy_setopt(curl.get(), CURLOPT_TIMEOUT, CURL_TIMEOUT);
22     
23         std::string response_body;
24         curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION,
25                          +[](void* buffer, size_t size, size_t nmemb, void* 
userp) -> size_t {
26                              if (!userp)
/linguistic/source/translate.cxx: 20 in linguistic::Translate(const 
rtl::OString &, const rtl::OString &, const rtl::OString &, const rtl::OString 
&)()
14     {
15         constexpr tools::Long CURL_TIMEOUT = 10L;
16     
17         std::unique_ptr<CURL, std::function<void(CURL*)>> 
curl(curl_easy_init(),
18                                                                [](CURL* p) { 
curl_easy_cleanup(p); });
19         curl_easy_setopt(curl.get(), CURLOPT_URL, rAPIUrl.getStr());
>>>     CID 1515996:    (CHECKED_RETURN)
>>>     Calling "curl_easy_setopt(curl.get(), CURLOPT_FAILONERROR, 1L)" without 
>>> checking return value. This library function may fail and return an error 
>>> code.
20         curl_easy_setopt(curl.get(), CURLOPT_FAILONERROR, 1L);
21         curl_easy_setopt(curl.get(), CURLOPT_TIMEOUT, CURL_TIMEOUT);
22     
23         std::string response_body;
24         curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION,
25                          +[](void* buffer, size_t size, size_t nmemb, void* 
userp) -> size_t {


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, 
https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50ypSs1kiFPuCn2xFdlMIFBirii0zZ9j2-2F9F2XPBcBm2BNgi9duPy3v-2FzgFDd2LJ-2BDKI-3DGiv8_OTq2XUZbbipYjyLSo6GRo-2FpVxQ9OzkDINu9UTS-2FQhSdO0F0jQniitrGlNxDIzPJiE3abuAxLOjq564Ht7O1XHUJaW1GJ48vF2E5tTJwrJk8GYeLSlMfaFHX-2FCv5UsO2C7TzdROD3JShLyWCBh0qOLGmrzahvlKjiUDGAfcWg2DYFirlkWV6jaxys659MmObiTZDYTy-2BJWfPZSdH6wQCUsayUgLYN0tzNOKXOF0wy6LU-3D

Reply via email to