-
Problem report
-
Resolution: Fixed
-
Trivial
-
3.4.14, 4.0.1, 4.2.0alpha1
-
None
-
Sprint 46, Nov 2018
-
0.5
** CID 184231: Error handling issues (CHECKED_RETURN)
/src/libs/zbxhistory/history_elastic.c: 485 in elastic_writer_flush()
________________________________________________________________________________________________________
*** CID 184231: Error handling issues (CHECKED_RETURN)
/src/libs/zbxhistory/history_elastic.c: 485 in elastic_writer_flush()
479 " message: %s", curl_page->errbuf);
480 }
481 else
482 {
483 long int err;
484
>>> CID 184231: Error handling issues (CHECKED_RETURN)
>>> Calling "curl_easy_getinfo" without checking return value (as is done elsewhere 8 out of 10 times).
485 curl_easy_getinfo(msg->easy_handle, CURLINFO_RESPONSE_CODE, &err);
486 zabbix_log(LOG_LEVEL_ERR, "cannot send data to elasticsearch, HTTP error code:"
487 " %ld", err);
488 }
489 }
490 else if (CURLE_OK != msg->data.result)
** CID 184229: Error handling issues (CHECKED_RETURN)
/src/libs/zbxhistory/history_elastic.c: 200 in elastic_log_error()
________________________________________________________________________________________________________
*** CID 184229: Error handling issues (CHECKED_RETURN)
/src/libs/zbxhistory/history_elastic.c: 200 in elastic_log_error()
194 static void elastic_log_error(CURL *handle, CURLcode error, const char *errbuf)
195 {
196 long http_code;
197
198 if (CURLE_HTTP_RETURNED_ERROR == error)
199 {
>>> CID 184229: Error handling issues (CHECKED_RETURN)
>>> Calling "curl_easy_getinfo" without checking return value (as is done elsewhere 8 out of 10 times).
200 curl_easy_getinfo(handle, CURLINFO_RESPONSE_CODE, &http_code);
201
202 if (0 != page_r.offset)
203 {
204 zabbix_log(LOG_LEVEL_ERR, "cannot get values from elasticsearch, HTTP error: %ld, message: %s",
205 http_code, page_r.data);
According to libcurl documentation curl_easy_getinfo with CURLINFO_RESPONSE_CODE:
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
Not sure if it's possible for it to return error in our setup, but better to handle it.