diff --git a/src/lib/parser-json-cov.cc b/src/lib/parser-json-cov.cc index 99bee8d9..e02da642 100644 --- a/src/lib/parser-json-cov.cc +++ b/src/lib/parser-json-cov.cc @@ -21,26 +21,104 @@ #include "parser-cov.hh" // for KeyEventDigger +#include + struct CovTreeDecoder::Private { KeyEventDigger keDigger; + InStream &input; + const pt::ptree *pSrc; + + Private(InStream &input_): + input(input_) + { + } + + void readEvents(Defect *def); }; -CovTreeDecoder::CovTreeDecoder(): - d(new Private) +CovTreeDecoder::CovTreeDecoder(InStream &input): + d(new Private(input)) { } CovTreeDecoder::~CovTreeDecoder() = default; +/// decode single event +static DefEvent covDecodeEvt(const pt::ptree &evtNode) +{ + DefEvent evt; + + evt.fileName = valueOf(evtNode, "filePathname"); + evt.line = valueOf (evtNode, "lineNumber"); + evt.column = valueOf (evtNode, "columnNumber"); + evt.event = valueOf(evtNode, "eventTag"); + evt.msg = valueOf(evtNode, "eventDescription"); + + return evt; +} + +struct CovEvtStackItem { + const pt::ptree &evts; + pt::ptree::const_iterator iter; + + CovEvtStackItem(const pt::ptree &evts_): + evts(evts_), + iter(evts_.begin()) + { + } +}; + +void CovTreeDecoder::Private::readEvents(Defect *def) +{ + // stack to traverse events recursively (without recursive fnc call) + std::stack todo; + todo.push(this->pSrc->get_child("events")); + + do { + CovEvtStackItem &si = todo.top(); + if (si.evts.end() == si.iter) { + // no more events at this level to iterate through + todo.pop(); + continue; + } + + // get current event and move to the next one + const pt::ptree &evtNode = (si.iter++)->second; + + if (evtNode.get("main")) { + // this is a key event + + if (def->keyEventIdx) + // key event redefinition (TODO: more detailed diagnostic msg) + std::cerr << this->input.fileName() + << ": warning: key event redefinition detected" + << std::endl; + + // record key event index + def->keyEventIdx = def->events.size(); + } + + // push the event to the list of events + DefEvent evt = covDecodeEvt(evtNode); + def->events.push_back(std::move(evt)); + + // check for nested events and eventually process them recursively + const pt::ptree &nestedEvts = evtNode.get_child("events"); + if (!nestedEvts.empty()) + todo.push(nestedEvts); + } + while (!todo.empty()); +} + bool CovTreeDecoder::readNode(Defect *def) { // move the iterator after we get the current position - const pt::ptree *pNode = this->nextNode(); - if (!pNode) + d->pSrc = this->nextNode(); + if (!d->pSrc) // failed initialization or EOF return false; - const pt::ptree &defNode = *pNode; + const pt::ptree &defNode = *d->pSrc; // read per-defect properties def->checker = defNode.get("checkerName"); @@ -61,28 +139,8 @@ bool CovTreeDecoder::readNode(Defect *def) def->imp = 1; } - // count the events and allocate dst array - const pt::ptree &evtList = defNode.get_child("events"); - def->events.resize(evtList.size()); - - // decode events one by one - unsigned idx = 0; - pt::ptree::const_iterator it; - for (it = evtList.begin(); it != evtList.end(); ++it, ++idx) { - const pt::ptree &evtNode = it->second; - DefEvent &evt = def->events[idx]; - - evt.fileName = valueOf(evtNode, "filePathname"); - evt.line = valueOf (evtNode, "lineNumber"); - evt.column = valueOf (evtNode, "columnNumber"); - evt.event = valueOf(evtNode, "eventTag"); - evt.msg = valueOf(evtNode, "eventDescription"); - - if (evtNode.get("main")) - // this is a key event - // TODO: detect and report re-definitions of key events - def->keyEventIdx = idx; - } + // read all events + d->readEvents(def); // initialize verbosity level of all events d->keDigger.initVerbosity(def); diff --git a/src/lib/parser-json-cov.hh b/src/lib/parser-json-cov.hh index bf893aeb..137f748d 100644 --- a/src/lib/parser-json-cov.hh +++ b/src/lib/parser-json-cov.hh @@ -25,7 +25,7 @@ /// tree decoder of the Coverity JSON format class CovTreeDecoder: public AbstractTreeDecoder { public: - CovTreeDecoder(); + CovTreeDecoder(InStream &input); ~CovTreeDecoder() override; bool readNode(Defect *def) override; diff --git a/src/lib/parser-json.cc b/src/lib/parser-json.cc index 1af5c032..f0629f2c 100644 --- a/src/lib/parser-json.cc +++ b/src/lib/parser-json.cc @@ -89,7 +89,7 @@ JsonParser::JsonParser(InStream &input): d->decoder.reset(new SimpleTreeDecoder(d->input)); else if (findChildOf(&node, d->root, "issues")) // Coverity JSON format - d->decoder.reset(new CovTreeDecoder); + d->decoder.reset(new CovTreeDecoder(d->input)); else if (findChildOf(&node, d->root, "runs")) // SARIF format d->decoder.reset(new SarifTreeDecoder); diff --git a/tests/csgrep/0059-json-parser-cov-v7-cwe-stdout.txt b/tests/csgrep/0059-json-parser-cov-v7-cwe-stdout.txt index f5bd0b11..160afd3e 100644 --- a/tests/csgrep/0059-json-parser-cov-v7-cwe-stdout.txt +++ b/tests/csgrep/0059-json-parser-cov-v7-cwe-stdout.txt @@ -549,12 +549,20 @@ Error: DEADCODE (CWE-561): Error: PRINTF_ARGS (CWE-686): /builddir/build/BUILD/curl-7.66.0/lib/http2.c:1149: invalid_type: Precision argument "len" to format specifier "%.*s" was expected to have type "int" but has type "unsigned long". +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:235: path: Condition "data", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:235: path: Condition "data->set.verbose", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:240: printf_function: Calling "curl_mvsnprintf" which uses a "printf"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.] Error: PRINTF_ARGS (CWE-686): /builddir/build/BUILD/curl-7.66.0/lib/http2.c:2084: invalid_type: Argument "60000" to format specifier "%zu" was expected to have type "size_t"("unsigned long") but has type "int". +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:235: path: Condition "data", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:235: path: Condition "data->set.verbose", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:240: printf_function: Calling "curl_mvsnprintf" which uses a "printf"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.] Error: PRINTF_ARGS (CWE-686): /builddir/build/BUILD/curl-7.66.0/lib/http2.c:2280: invalid_type: Argument "32768" to format specifier "%zu" was expected to have type "size_t"("unsigned long") but has type "int". +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:264: path: Condition "data->set.verbose", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:269: printf_function: Calling "curl_mvsnprintf" which uses a "printf"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.] Error: DEADCODE (CWE-561): /builddir/build/BUILD/curl-7.66.0/lib/http_chunks.c:157: assignment: Assigning: "result" = "((void)conn->data) , CURLE_OK". @@ -625,6 +633,9 @@ Error: CHECKED_RETURN (CWE-252): Error: PRINTF_ARGS (CWE-686): /builddir/build/BUILD/curl-7.66.0/lib/krb5.c:217: invalid_type: Argument "output_buffer.value" to format specifier "%s" was expected to have type "char *" but has type "void *". +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:235: path: Condition "data", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:235: path: Condition "data->set.verbose", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:240: printf_function: Calling "curl_mvsnprintf" which uses a "printf"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.] Error: CHECKED_RETURN (CWE-252): /builddir/build/BUILD/curl-7.66.0/lib/multi.c:530: path: Condition "data->state.done", taking false branch. @@ -842,9 +853,13 @@ Error: CHECKED_RETURN (CWE-252): Error: PRINTF_ARGS (CWE-686): /builddir/build/BUILD/curl-7.66.0/lib/socks_gssapi.c:494: invalid_type: Argument "gss_w_token.length" to format specifier "%d" was expected to have type "int" but has type "unsigned long". +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:264: path: Condition "data->set.verbose", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:269: printf_function: Calling "curl_mvsnprintf" which uses a "printf"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.] Error: PRINTF_ARGS (CWE-686): /builddir/build/BUILD/curl-7.66.0/lib/socks_gssapi.c:506: invalid_type: Argument "gss_recv_token.length" to format specifier "%d" was expected to have type "int" but has type "unsigned long". +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:264: path: Condition "data->set.verbose", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:269: printf_function: Calling "curl_mvsnprintf" which uses a "printf"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.] Error: CHECKED_RETURN (CWE-252): /builddir/build/BUILD/curl-7.66.0/lib/strerror.c:697: path: Condition "0 != strerror_r(err, buf, max)", taking true branch. @@ -889,6 +904,13 @@ Error: STRING_NULL (CWE-170): /builddir/build/BUILD/curl-7.66.0/lib/tftp.c:1139: path: Condition "state->rbytes < 4", taking false branch. /builddir/build/BUILD/curl-7.66.0/lib/tftp.c:1149: path: Switch case value "TFTP_EVENT_OACK". /builddir/build/BUILD/curl-7.66.0/lib/tftp.c:1178: string_null: Passing unterminated string "(char const *)state->rpacket.data + 2" to "tftp_parse_option_ack", which expects a null-terminated string. +/builddir/build/BUILD/curl-7.66.0/lib/tftp.c:336: var_assign_parm: Assigning: "tmp" = "ptr". They now point to the same thing. +/builddir/build/BUILD/curl-7.66.0/lib/tftp.c:342: path: Condition "tmp < ptr + len", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/tftp.c:345: string_null_sink_lv_call: Passing local "tmp", that points to a parameter, to "tftp_option_get", which expects a null-terminated string. +/builddir/build/BUILD/curl-7.66.0/lib/tftp.c:319: path: Condition "loc >= len", taking false branch. +/builddir/build/BUILD/curl-7.66.0/lib/tftp.c:321: var_assign_parm: Assigning: "*option" = "buf". +/builddir/build/BUILD/curl-7.66.0/lib/tftp.c:326: path: Condition "loc > len", taking false branch. +/builddir/build/BUILD/curl-7.66.0/lib/tftp.c:328: string_null_sink_parm_call: Passing parameter "*option" to "strlen" which expects a null-terminated string. Error: CHECKED_RETURN (CWE-252): /builddir/build/BUILD/curl-7.66.0/lib/url.c:2158: path: Condition "!uc", taking true branch. @@ -1124,6 +1146,8 @@ Error: OVERRUN (CWE-125): /builddir/build/BUILD/curl-7.66.0/lib/vauth/ntlm.c:820: assignment: Assigning: "size" += "domlen". The value of "size" may now be up to 1047. /builddir/build/BUILD/curl-7.66.0/lib/vauth/ntlm.c:823: path: Condition "unicode", taking true branch. /builddir/build/BUILD/curl-7.66.0/lib/vauth/ntlm.c:824: overrun-local: Overrunning array of 1024 bytes at byte offset 1047 by dereferencing pointer "&ntlmbuf[size]". +/builddir/build/BUILD/curl-7.66.0/lib/vauth/ntlm.c:342: path: Condition "i < length", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/vauth/ntlm.c:343: deref_parm: Directly dereferencing parameter "dest". Error: OVERRUN (CWE-125): /builddir/build/BUILD/curl-7.66.0/lib/vauth/ntlm.c:525: assignment: Assigning: "ntresplen" = "24U". @@ -1202,9 +1226,15 @@ Error: CHECKED_RETURN (CWE-252): Error: PRINTF_ARGS (CWE-686): /builddir/build/BUILD/curl-7.66.0/lib/vtls/openssl.c:3479: invalid_type: Precision argument "len" to format specifier "%.*s" was expected to have type "int" but has type "long". +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:235: path: Condition "data", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:235: path: Condition "data->set.verbose", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:240: printf_function: Calling "curl_mvsnprintf" which uses a "printf"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.] Error: PRINTF_ARGS (CWE-686): /builddir/build/BUILD/curl-7.66.0/lib/vtls/openssl.c:3484: invalid_type: Precision argument "len" to format specifier "%.*s" was expected to have type "int" but has type "long". +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:235: path: Condition "data", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:235: path: Condition "data->set.verbose", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/sendf.c:240: printf_function: Calling "curl_mvsnprintf" which uses a "printf"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.] Error: CHECKED_RETURN (CWE-252): /builddir/build/BUILD/curl-7.66.0/lib/vtls/openssl.c:3808: path: Condition "len > 2147483647UL /* (size_t)2147483647 */", taking true branch. @@ -1215,6 +1245,9 @@ Error: CHECKED_RETURN (CWE-252): /builddir/build/BUILD/curl-7.66.0/lib/vtls/openssl.c:3831: path: Condition "conn->ssl[sockindex].state == ssl_connection_complete", taking true branch. /builddir/build/BUILD/curl-7.66.0/lib/vtls/openssl.c:3831: path: Condition "conn->proxy_ssl[sockindex].state == ssl_connection_complete", taking true branch. /builddir/build/BUILD/curl-7.66.0/lib/vtls/openssl.c:3836: check_return: Calling "Curl_ossl_version(ver, 120UL)" without checking return value. It wraps a library function that may fail and return an error code. +/builddir/build/BUILD/curl-7.66.0/lib/vtls/openssl.c:3924: path: Condition "ssleay_value < 9461760", taking true branch. +/builddir/build/BUILD/curl-7.66.0/lib/vtls/openssl.c:3927: path: Falling through to end of if statement. +/builddir/build/BUILD/curl-7.66.0/lib/vtls/openssl.c:3944: return_wrapper: The function wraps and returns the value of "curl_msnprintf(buffer, size, "%s/%lx.%lx.%lx%s-fips", "OpenSSL", (ssleay_value >> 28) & 0xfUL, (ssleay_value >> 20) & 0xffUL, (ssleay_value >> 12) & 0xffUL, sub)". [Note: The source code implementation of the function has been overridden by a builtin model.] Error: CHECKED_RETURN (CWE-252): /builddir/build/BUILD/curl-7.66.0/lib/vtls/vtls.c:693: path: Condition "!output", taking false branch. @@ -1693,6 +1726,28 @@ Error: RESOURCE_LEAK (CWE-404): /builddir/build/BUILD/curl-7.66.0/src/tool_formparse.c:115: path: Condition "!fstat(fd, &sbuf)", taking true branch. /builddir/build/BUILD/curl-7.66.0/src/tool_formparse.c:115: path: Condition "(sbuf.st_mode & 61440) == 32768", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_formparse.c:127: alloc_arg: "file2memory" allocates memory that is stored into "data". +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:96: path: Condition "file", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:100: path: Condition "!buffer", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:102: path: Condition "alloc + 1 > 9223372036854775807UL /* (size_t)-1 / 2 */", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:109: path: Condition "!newbuf", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:117: path: Condition "nread", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:100: path: Condition "!buffer", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:100: path: Condition "alloc == nused", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:102: path: Condition "alloc + 1 > 9223372036854775807UL /* (size_t)-1 / 2 */", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:109: path: Condition "!newbuf", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:117: path: Condition "nread", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:100: path: Condition "!buffer", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:100: path: Condition "alloc == nused", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:102: path: Condition "alloc + 1 > 9223372036854775807UL /* (size_t)-1 / 2 */", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:109: path: Condition "!newbuf", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:117: path: Condition "nread", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:121: path: Condition "alloc != nused", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:122: alloc_fn: Storage is returned from allocation function "realloc". +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:122: assign: Assigning: "newbuf" = "realloc(buffer, nused + 1UL)". +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:123: path: Condition "!newbuf", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:127: assign: Assigning: "buffer" = "newbuf". +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:130: path: Condition "!nused", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_paramhlp.c:135: assign: Assigning: "*bufp" = "buffer". /builddir/build/BUILD/curl-7.66.0/src/tool_formparse.c:127: path: Condition "file2memory(&data, &stdinsize, stdin) != PARAM_OK", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_formparse.c:132: path: Condition "ferror(stdin)", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_formparse.c:137: path: Condition "!stdinsize", taking true branch. @@ -2151,6 +2206,15 @@ Error: RESOURCE_LEAK (CWE-404): /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:792: path: Condition "!config->globoff", taking true branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:795: path: Condition "global->showerror", taking true branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:795: alloc_arg: "glob_url" allocates memory that is stored into "urls". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:445: path: Condition "!glob_buffer", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:449: alloc_fn: Storage is returned from allocation function "calloc". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:449: assign: Assigning: "glob_expand" = "calloc(1UL, 4848UL)". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:450: path: Condition "!glob_expand", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:457: noescape: Resource "glob_expand" is not freed or pointed-to in function "glob_parse". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:352: noescape: "glob_parse(URLGlob *, char *, size_t, unsigned long *)" does not free or save its parameter "glob". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:458: path: Condition "!res", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:459: path: Falling through to end of if statement. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:482: assign: Assigning: "*glob" = "glob_expand". /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:797: path: Condition "result", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:801: path: Falling through to end of if statement. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:806: path: Condition "!outfiles", taking false branch. @@ -2166,6 +2230,7 @@ Error: RESOURCE_LEAK (CWE-404): /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:870: path: Condition "metalink", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:886: path: Condition "urls", taking true branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:887: noescape: Resource "urls" is not freed or pointed-to in "glob_next_url". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:506: noescape: "glob_next_url(https://github.com/char%20**,%20URLGlob%20*)" does not free or save its parameter "glob". /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:888: path: Condition "result", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:890: path: Falling through to end of if statement. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:900: path: Condition "!per->this_url", taking false branch. @@ -2177,6 +2242,7 @@ Error: RESOURCE_LEAK (CWE-404): /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:921: path: Condition "!per->outfile", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:932: path: Condition "urls", taking true branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:935: noescape: Resource "urls" is not freed or pointed-to in "glob_match_url". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:600: noescape: "glob_match_url(https://github.com/char%20**,%20char%20*,%20URLGlob%20*)" does not free or save its parameter "glob". /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:937: path: Condition "result", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:947: path: Condition "config->create_dirs", taking true branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:950: path: Condition "result == CURLE_WRITE_ERROR", taking false branch. @@ -3882,6 +3948,41 @@ Error: RESOURCE_LEAK (CWE-404): /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:768: path: Condition "!infiles", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:771: path: Condition "inglob", taking true branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:772: alloc_arg: "glob_next_url" allocates memory that is stored into "uploadfile". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:516: path: Condition "!glob->beenhere", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:517: path: Falling through to end of if statement. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:560: path: Condition "i < glob->size", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:562: path: Switch case value "UPTSet". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:564: path: Condition "pat->content.Set.elements", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:571: path: Breaking from switch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:591: path: Jumping back to the beginning of the loop. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:560: path: Condition "i < glob->size", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:562: path: Switch case value "UPTSet". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:564: path: Condition "pat->content.Set.elements", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:571: path: Breaking from switch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:591: path: Jumping back to the beginning of the loop. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:560: path: Condition "i < glob->size", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:562: path: Switch case value "UPTCharRange". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:573: path: Condition "buflen", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:578: path: Breaking from switch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:591: path: Jumping back to the beginning of the loop. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:560: path: Condition "i < glob->size", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:562: path: Switch case value "UPTCharRange". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:573: path: Condition "buflen", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:578: path: Breaking from switch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:591: path: Jumping back to the beginning of the loop. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:560: path: Condition "i < glob->size", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:562: path: Switch case value "UPTSet". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:564: path: Condition "pat->content.Set.elements", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:571: path: Breaking from switch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:591: path: Jumping back to the beginning of the loop. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:560: path: Condition "i < glob->size", taking true branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:562: path: Switch case value "UPTNumRange". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:586: path: Breaking from switch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:591: path: Jumping back to the beginning of the loop. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:560: path: Condition "i < glob->size", taking false branch. +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:593: alloc_fn: Storage is returned from allocation function "strdup". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:593: assign: Assigning: "*globbed" = "strdup(glob->glob_buffer)". +/builddir/build/BUILD/curl-7.66.0/src/tool_urlglob.c:594: path: Condition "!*globbed", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:773: path: Condition "result == CURLE_OUT_OF_MEMORY", taking false branch. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:775: path: Falling through to end of if statement. /builddir/build/BUILD/curl-7.66.0/src/tool_operate.c:783: path: Condition "!uploadfile", taking false branch. diff --git a/tests/csgrep/0061-json-parser-cov-v7-lang-stdout.txt b/tests/csgrep/0061-json-parser-cov-v7-lang-stdout.txt index 754a1459..010f2f02 100644 --- a/tests/csgrep/0061-json-parser-cov-v7-lang-stdout.txt +++ b/tests/csgrep/0061-json-parser-cov-v7-lang-stdout.txt @@ -1069,7 +1069,7 @@ "function": "parser::do_parse_functiondecl(std::vector > &, token const *, std::__cxx11::basic_string, std::allocator > const &, bool)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 17, + "key_event_idx": 75, "events": [ { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", @@ -1185,419 +1185,420 @@ }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2485, - "event": "var_assigned", - "message": "Assigning: \"t\" = \"nullptr\" return value from \"peek\".", + "line": 1218, + "event": "path", + "message": "Condition \"!this->next_t\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1219, + "event": "null_return", + "message": "Calling \"scan_pp\" which might return null.", "verbosity_level": 1 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2486, - "event": "dereference", - "message": "Dereferencing \"t\", which is known to be \"nullptr\".", - "verbosity_level": 0 + "line": 1055, + "event": "path", + "message": "Condition \"true\", taking true branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2736, - "event": "example_assign", - "message": "Example 1: Assigning: \"n\" = return value from \"this->peek()\".", - "verbosity_level": 1 + "line": 1058, + "event": "path", + "message": "Condition \"!this->pp_state.empty()\", taking true branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2737, - "event": "example_checked", - "message": "Example 1 (cont.): \"n\" has its value checked in \"n != NULL\".", - "verbosity_level": 1 + "line": 1062, + "event": "path", + "message": "Condition \"pp == parser::PP_SKIP_THEN\", taking true branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 3753, - "event": "example_assign", - "message": "Example 2: Assigning: \"t\" = return value from \"this->peek()\".", - "verbosity_level": 1 + "line": 1063, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 3754, - "event": "example_checked", - "message": "Example 2 (cont.): \"t\" has its value checked in \"t\".", - "verbosity_level": 1 + "line": 1067, + "event": "path", + "message": "Condition \"t == NULL\", taking false branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 4275, - "event": "example_assign", - "message": "Example 3: Assigning: \"t\" = return value from \"this->peek()\".", - "verbosity_level": 1 + "line": 1080, + "event": "path", + "message": "Condition \"t->type == tok_operator\", taking true branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 4276, - "event": "example_checked", - "message": "Example 3 (cont.): \"t\" has its value checked in \"t\".", - "verbosity_level": 1 + "line": 1080, + "event": "path", + "message": "Condition \"t->content == \"%?\"\", taking false branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 4341, - "event": "example_assign", - "message": "Example 4: Assigning: \"t\" = return value from \"this->peek()\".", - "verbosity_level": 1 + "line": 1084, + "event": "path", + "message": "Condition \"t->type == tok_operator\", taking true branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 4342, - "event": "example_checked", - "message": "Example 4 (cont.): \"t\" has its value checked in \"t != NULL\".", - "verbosity_level": 1 + "line": 1084, + "event": "path", + "message": "Condition \"t->content == \"%:\"\", taking true branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 3705, - "event": "example_assign", - "message": "Example 5: Assigning: \"t\" = return value from \"this->peek()\".", - "verbosity_level": 1 + "line": 1086, + "event": "path", + "message": "Condition \"pp == parser::PP_NONE\", taking false branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 3706, - "event": "example_checked", - "message": "Example 5 (cont.): \"t\" has its value checked in \"t\".", - "verbosity_level": 1 - } - ] - }, - { - "checker": "RESOURCE_LEAK", - "cwe": 404, - "imp": 1, - "function": "parser::parse_components()", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 32, - "events": [ + "line": 1088, + "event": "path", + "message": "Condition \"pp == parser::PP_KEEP_ELSE\", taking false branch.", + "verbosity_level": 2 + }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2546, + "line": 1088, "event": "path", - "message": "Condition \"true /* 1 */\", taking true branch.", + "message": "Condition \"pp == parser::PP_SKIP_ELSE\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2551, + "line": 1093, "event": "path", - "message": "Condition \"pps.empty()\", taking true branch.", + "message": "Condition \"pp == parser::PP_KEEP_THEN\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2552, + "line": 1096, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Continuing loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2585, + "line": 1055, "event": "path", - "message": "Condition \"t\", taking true branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2585, + "line": 1058, "event": "path", - "message": "Condition \"t->type == tok_operator\", taking true branch.", + "message": "Condition \"!this->pp_state.empty()\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2585, + "line": 1062, "event": "path", - "message": "Condition \"t->content == \".\"\", taking false branch.", + "message": "Condition \"pp == parser::PP_SKIP_THEN\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2594, + "line": 1062, "event": "path", - "message": "Condition \"t\", taking true branch.", + "message": "Condition \"pp == parser::PP_SKIP_ELSE\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2594, + "line": 1063, "event": "path", - "message": "Condition \"t->type == tok_operator\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2594, + "line": 1067, "event": "path", - "message": "Condition \"t->content == \"?\"\", taking true branch.", + "message": "Condition \"t == NULL\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2597, + "line": 1080, "event": "path", - "message": "Condition \"i < pps.size()\", taking true branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2599, + "line": 1080, "event": "path", - "message": "Condition \"pps[i]->optional\", taking false branch.", + "message": "Condition \"t->content == \"%?\"\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2599, + "line": 1084, "event": "path", - "message": "Condition \"pps[i]->sufficient\", taking false branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2602, + "line": 1084, "event": "path", - "message": "Condition \"t->content == \"!\"\", taking true branch.", + "message": "Condition \"t->content == \"%:\"\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2603, + "line": 1100, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2597, + "line": 1100, "event": "path", - "message": "Condition \"i < pps.size()\", taking true branch.", + "message": "Condition \"t->content == \"%)\"\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2599, + "line": 1110, "event": "path", - "message": "Condition \"pps[i]->optional\", taking false branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2599, + "line": 1110, "event": "path", - "message": "Condition \"pps[i]->sufficient\", taking false branch.", + "message": "Condition \"t->content == \"%(\"\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2602, + "line": 1123, "event": "path", - "message": "Condition \"t->content == \"!\"\", taking true branch.", + "message": "Condition \"l == NULL\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2603, + "line": 1123, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"op == NULL\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2597, + "line": 1123, "event": "path", - "message": "Condition \"i < pps.size()\", taking false branch.", + "message": "Condition \"r == NULL\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2610, + "line": 1131, "event": "path", - "message": "Condition \"t\", taking true branch.", + "message": "Condition \"l->content == \"systemtap_v\"\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2610, + "line": 1132, "event": "path", - "message": "Condition \"t->type == tok_keyword\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2610, + "line": 1142, "event": "path", - "message": "Condition \"t->content == \"if\"\", taking true branch.", + "message": "Condition \"n\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2614, + "line": 1142, "event": "path", - "message": "Condition \"t\", taking true branch.", + "message": "Condition \"n->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2614, + "line": 1142, "event": "path", - "message": "Condition \"t->type == tok_operator\", taking true branch.", + "message": "Condition \"n->content == \"&&\"\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2614, + "line": 1146, "event": "path", - "message": "Condition \"t->content == \"(\"\", taking true branch.", + "message": "Condition \"n\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2618, - "event": "alloc_fn", - "message": "Storage is returned from allocation function \"parse_expression\".", - "verbosity_level": 1 + "line": 1146, + "event": "path", + "message": "Condition \"n->type == tok_operator\", taking true branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2618, - "event": "var_assign", - "message": "Assigning: \"e\" = storage returned from \"this->parse_expression()\".", - "verbosity_level": 1 + "line": 1146, + "event": "path", + "message": "Condition \"n->content == \"||\"\", taking false branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2619, + "line": 1147, "event": "path", - "message": "Condition \"i < pps.size()\", taking false branch.", + "message": "Breaking from loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2627, + "line": 1155, "event": "path", - "message": "Condition \"t\", taking true branch.", + "message": "Condition \"m\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2627, + "line": 1155, "event": "path", - "message": "Condition \"t->type == tok_operator\", taking true branch.", + "message": "Condition \"m->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2627, + "line": 1155, "event": "path", - "message": "Condition \"t->content == \")\"\", taking true branch.", + "message": "Condition \"m->content == \"%?\"\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2630, - "event": "leaked_storage", - "message": "Variable \"e\" going out of scope leaks the storage it points to.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "REVERSE_INULL", - "cwe": 476, - "function": "parser::parse_component()", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 1, - "events": [ + "line": 1159, + "event": "path", + "message": "Condition \"result\", taking true branch.", + "verbosity_level": 2 + }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2641, - "event": "deref_ptr", - "message": "Directly dereferencing pointer \"t\".", - "verbosity_level": 1 + "line": 1163, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2648, - "event": "check_after_deref", - "message": "Null-checking \"t\" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "CONSTANT_EXPRESSION_RESULT", - "cwe": 569, - "function": "parser::parse_literal()", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "line": 1055, + "event": "path", + "message": "Condition \"true\", taking true branch.", + "verbosity_level": 2 + }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2804, - "event": "result_independent_of_operands", - "message": "\"(unsigned long long)value > 18446744073709551615ULL\" is always false regardless of the values of its operands. This occurs as the logical second operand of \"||\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "NULL_RETURNS", - "cwe": 476, - "function": "parser::parse_return_statement()", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 5, - "events": [ + "line": 1058, + "event": "path", + "message": "Condition \"!this->pp_state.empty()\", taking true branch.", + "verbosity_level": 2 + }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2876, + "line": 1062, "event": "path", - "message": "Condition \"t->type == tok_keyword\", taking true branch.", + "message": "Condition \"pp == parser::PP_SKIP_THEN\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2876, + "line": 1062, "event": "path", - "message": "Condition \"t->content == \"return\"\", taking true branch.", + "message": "Condition \"pp == parser::PP_SKIP_ELSE\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2878, + "line": 1067, "event": "path", - "message": "Condition \"this->context != con_function\", taking false branch.", + "message": "Condition \"t == NULL\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2883, - "event": "returned_null", - "message": "\"peek\" returns \"nullptr\" (checked 72 out of 79 times).", + "line": 1067, + "event": "var_tested_null", + "message": "\"t\" is null.", "verbosity_level": 1 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2883, - "event": "var_assigned", - "message": "Assigning: \"t\" = \"nullptr\" return value from \"peek\".", - "verbosity_level": 1 + "line": 1069, + "event": "path", + "message": "Condition \"pp != parser::PP_NONE\", taking false branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", - "line": 2884, + "line": 1076, + "event": "return_null_var", + "message": "Returning \"t\", which is null.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1219, + "event": "var_assign", + "message": "Assigning: \"this->next_t\" = \"this->scan_pp()\", which might be \"nullptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1222, + "event": "var_assign", + "message": "Assigning: \"this->last_t\" = \"this->next_t\", which might be \"nullptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1223, + "event": "return_null_var", + "message": "Returning \"this->next_t\", which is null.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2485, + "event": "var_assigned", + "message": "Assigning: \"t\" = \"nullptr\" return value from \"peek\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2486, "event": "dereference", "message": "Dereferencing \"t\", which is known to be \"nullptr\".", "verbosity_level": 0 @@ -1675,4350 +1676,7015 @@ ] }, { - "checker": "UNCAUGHT_EXCEPT", - "cwe": 248, - "function": "direct::~direct()", + "checker": "RESOURCE_LEAK", + "cwe": 404, + "imp": 1, + "function": "parser::parse_components()", "language": "c/c++", "tool": "coverity", - "key_event_idx": 0, + "key_event_idx": 41, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", - "line": 123, - "event": "exn_spec_violation", - "message": "An exception of type \"boost::wrapexcept\" is thrown but the throw list \"noexcept\" doesn't allow it to be thrown. This will cause a call to unexpected() which usually calls terminate().", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2546, + "event": "path", + "message": "Condition \"true /* 1 */\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", - "line": 123, - "event": "fun_call_w_exception", - "message": "Called function throws an exception of type \"boost::wrapexcept\".", - "verbosity_level": 1 - } - ] - }, - { - "checker": "STRING_OVERFLOW", - "cwe": 120, - "function": "unix_stapsh::unix_stapsh(systemtap_session &, uri_decoder const &)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 7, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2551, + "event": "path", + "message": "Condition \"pps.empty()\", taking true branch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", - "line": 687, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2552, "event": "path", - "message": "Condition \"i < s.perpass_verbose[4]\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", - "line": 688, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2585, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"t\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", - "line": 687, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2585, "event": "path", - "message": "Condition \"i < s.perpass_verbose[4]\", taking true branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", - "line": 688, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2585, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"t->content == \".\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", - "line": 687, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2594, "event": "path", - "message": "Condition \"i < s.perpass_verbose[4]\", taking false branch.", + "message": "Condition \"t\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", - "line": 692, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2594, "event": "path", - "message": "Condition \"ud.path.empty()\", taking false branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", - "line": 694, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2594, "event": "path", - "message": "Condition \"ud.path.size() > 107UL /* sizeof (server.sun_path) - 1 */\", taking false branch.", + "message": "Condition \"t->content == \"?\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", - "line": 696, - "event": "fixed_size_dest", - "message": "You might overrun the 108-character fixed-size string \"server.sun_path\" by copying the return value of \"c_str\" without checking the length.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "UNINIT_CTOR", - "cwe": 457, - "function": "systemtap_session::systemtap_session(systemtap_session const &, std::__cxx11::basic_string, std::allocator > const &, std::__cxx11::basic_string, std::allocator > const &)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 3, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2597, + "event": "path", + "message": "Condition \"i < pps.size()\", taking true branch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.h", - "line": 238, - "event": "member_decl", - "message": "Class member declaration for \"read_stdin\".", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2599, + "event": "path", + "message": "Condition \"pps[i]->optional\", taking false branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 419, - "event": "uninit_member", - "message": "Non-static class member \"read_stdin\" is not initialized in this constructor nor in any functions that it calls.", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2599, + "event": "path", + "message": "Condition \"pps[i]->sufficient\", taking false branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.h", - "line": 269, - "event": "member_decl", - "message": "Class member declaration for \"use_bpf_raw_tracepoint\".", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2602, + "event": "path", + "message": "Condition \"t->content == \"!\"\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 419, - "event": "uninit_member", - "message": "Non-static class member \"use_bpf_raw_tracepoint\" is not initialized in this constructor nor in any functions that it calls.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "FORWARD_NULL", - "cwe": 476, - "function": "systemtap_session::parse_cmdline(int, char * const *)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 11, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2603, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 748, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2597, "event": "path", - "message": "Condition \"true\", taking true branch.", + "message": "Condition \"i < pps.size()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 756, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2599, "event": "path", - "message": "Condition \"grc < 0\", taking false branch.", + "message": "Condition \"pps[i]->optional\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 758, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2599, "event": "path", - "message": "Switch case value \"LONG_OPT_DOWNLOAD_DEBUGINFO\".", + "message": "Condition \"pps[i]->sufficient\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1163, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2602, "event": "path", - "message": "Condition \"optarg\", taking false branch.", + "message": "Condition \"t->content == \"!\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1163, - "event": "var_compare_op", - "message": "Comparing \"optarg\" to null implies that \"optarg\" might be null.", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2603, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1183, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2597, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"i < pps.size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1675, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2610, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"t\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 748, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2610, "event": "path", - "message": "Condition \"true\", taking true branch.", + "message": "Condition \"t->type == tok_keyword\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 756, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2610, "event": "path", - "message": "Condition \"grc < 0\", taking false branch.", + "message": "Condition \"t->content == \"if\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 758, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2614, "event": "path", - "message": "Switch case value \"LONG_OPT_TMPDIR\".", + "message": "Condition \"t\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1154, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2614, "event": "path", - "message": "Condition \"this->client_options\", taking false branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1159, - "event": "var_deref_model", - "message": "Passing null pointer \"optarg\" to \"operator =\", which dereferences it. [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 0 - } - ] - }, - { - "checker": "FORWARD_NULL", - "cwe": 476, - "function": "systemtap_session::parse_cmdline(int, char * const *)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 11, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 748, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2614, "event": "path", - "message": "Condition \"true\", taking true branch.", + "message": "Condition \"t->content == \"(\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 756, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2618, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"parse_expression\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3245, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"parse_assignment\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3256, "event": "path", - "message": "Condition \"grc < 0\", taking false branch.", + "message": "Condition \"t\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 758, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3256, "event": "path", - "message": "Switch case value \"LONG_OPT_DOWNLOAD_DEBUGINFO\".", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1163, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3256, "event": "path", - "message": "Condition \"optarg\", taking false branch.", + "message": "Condition \"t->content == \"=\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1163, - "event": "var_compare_op", - "message": "Comparing \"optarg\" to null implies that \"optarg\" might be null.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3273, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1183, - "event": "path", - "message": "Breaking from switch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3273, + "event": "assign", + "message": "Assigning: \"e\" = \"new assignment\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1675, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3279, + "event": "assign", + "message": "Assigning: \"op1\" = \"e\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 748, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3282, + "event": "return_alloc", + "message": "Returning allocated memory \"op1\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3245, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"parse_assignment\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2618, + "event": "var_assign", + "message": "Assigning: \"e\" = storage returned from \"this->parse_expression()\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2619, "event": "path", - "message": "Condition \"true\", taking true branch.", + "message": "Condition \"i < pps.size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 756, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2627, "event": "path", - "message": "Condition \"grc < 0\", taking false branch.", + "message": "Condition \"t\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 758, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2627, "event": "path", - "message": "Switch case value \"LONG_OPT_REMOTE\".", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1311, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2627, "event": "path", - "message": "Condition \"this->client_options\", taking false branch.", + "message": "Condition \"t->content == \")\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1316, - "event": "var_deref_model", - "message": "Passing null pointer \"optarg\" to \"basic_string\", which dereferences it. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2630, + "event": "leaked_storage", + "message": "Variable \"e\" going out of scope leaks the storage it points to.", "verbosity_level": 0 } ] }, { - "checker": "FORWARD_NULL", + "checker": "REVERSE_INULL", "cwe": 476, - "function": "systemtap_session::parse_cmdline(int, char * const *)", + "function": "parser::parse_component()", "language": "c/c++", "tool": "coverity", - "key_event_idx": 11, + "key_event_idx": 1, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 748, - "event": "path", - "message": "Condition \"true\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2641, + "event": "deref_ptr", + "message": "Directly dereferencing pointer \"t\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 756, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2648, + "event": "check_after_deref", + "message": "Null-checking \"t\" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "CONSTANT_EXPRESSION_RESULT", + "cwe": 569, + "function": "parser::parse_literal()", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2804, + "event": "result_independent_of_operands", + "message": "\"(unsigned long long)value > 18446744073709551615ULL\" is always false regardless of the values of its operands. This occurs as the logical second operand of \"||\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NULL_RETURNS", + "cwe": 476, + "function": "parser::parse_return_statement()", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 63, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2876, "event": "path", - "message": "Condition \"grc < 0\", taking false branch.", + "message": "Condition \"t->type == tok_keyword\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 758, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2876, "event": "path", - "message": "Switch case value \"LONG_OPT_DOWNLOAD_DEBUGINFO\".", + "message": "Condition \"t->content == \"return\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1163, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2878, "event": "path", - "message": "Condition \"optarg\", taking false branch.", + "message": "Condition \"this->context != con_function\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1163, - "event": "var_compare_op", - "message": "Comparing \"optarg\" to null implies that \"optarg\" might be null.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2883, + "event": "returned_null", + "message": "\"peek\" returns \"nullptr\" (checked 72 out of 79 times).", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1183, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1218, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"!this->next_t\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1675, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1219, + "event": "null_return", + "message": "Calling \"scan_pp\" which might return null.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 748, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1055, "event": "path", "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 756, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1058, "event": "path", - "message": "Condition \"grc < 0\", taking false branch.", + "message": "Condition \"!this->pp_state.empty()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 758, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1062, "event": "path", - "message": "Switch case value \"LONG_OPT_SYSENV\".", + "message": "Condition \"pp == parser::PP_SKIP_THEN\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1530, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1063, "event": "path", - "message": "Condition \"this->client_options\", taking false branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1534, - "event": "var_deref_model", - "message": "Passing null pointer \"optarg\" to \"basic_string\", which dereferences it. [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 0 - } - ] - }, - { - "checker": "FORWARD_NULL", - "cwe": 476, - "function": "systemtap_session::parse_cmdline(int, char * const *)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 10, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1067, + "event": "path", + "message": "Condition \"t == NULL\", taking false branch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 748, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1080, "event": "path", - "message": "Condition \"true\", taking true branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 756, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1080, "event": "path", - "message": "Condition \"grc < 0\", taking false branch.", + "message": "Condition \"t->content == \"%?\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 758, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1084, "event": "path", - "message": "Switch case value \"LONG_OPT_DOWNLOAD_DEBUGINFO\".", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1163, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1084, "event": "path", - "message": "Condition \"optarg\", taking false branch.", + "message": "Condition \"t->content == \"%:\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1163, - "event": "var_compare_op", - "message": "Comparing \"optarg\" to null implies that \"optarg\" might be null.", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1183, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1086, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"pp == parser::PP_NONE\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1675, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1088, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pp == parser::PP_KEEP_ELSE\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 748, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1088, "event": "path", - "message": "Condition \"true\", taking true branch.", + "message": "Condition \"pp == parser::PP_SKIP_ELSE\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 756, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1093, "event": "path", - "message": "Condition \"grc < 0\", taking false branch.", + "message": "Condition \"pp == parser::PP_KEEP_THEN\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 758, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1096, "event": "path", - "message": "Switch case value \"LONG_OPT_RUNTIME\".", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", - "line": 1569, - "event": "var_deref_model", - "message": "Passing null pointer \"optarg\" to \"basic_string\", which dereferences it. [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 0 - } - ] - }, - { - "checker": "TAINTED_SCALAR", - "cwe": 606, - "function": "_Z19get_kernel_build_idB5cxx11R17systemtap_session", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 18, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 743, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1055, "event": "path", - "message": "Condition \"s.verbose > 2\", taking true branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 747, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1058, "event": "path", - "message": "Condition \"buildIDfile.is_open()\", taking true branch.", + "message": "Condition \"!this->pp_state.empty()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 750, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1062, "event": "path", - "message": "Condition \"buildIDfile.good()\", taking false branch.", + "message": "Condition \"pp == parser::PP_SKIP_THEN\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 759, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1062, "event": "path", - "message": "Condition \"found == false\", taking true branch.", + "message": "Condition \"pp == parser::PP_SKIP_ELSE\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 759, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1063, "event": "path", - "message": "Condition \"s.native_build\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 761, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1067, "event": "path", - "message": "Condition \"s.verbose > 1\", taking true branch.", + "message": "Condition \"t == NULL\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 766, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1080, "event": "path", - "message": "Condition \"fd < 0\", taking false branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 769, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1080, "event": "path", - "message": "Condition \"true /* (bool)(sizeof (Elf32_Nhdr) == sizeof (GElf_Nhdr)) */\", taking true branch.", + "message": "Condition \"t->content == \"%?\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 770, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1084, "event": "path", - "message": "Condition \"true /* (bool)(sizeof (Elf64_Nhdr) == sizeof (GElf_Nhdr)) */\", taking true branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 778, - "event": "tainted_argument", - "message": "Calling function \"read\" taints argument \"*buf.data\". [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 781, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1084, "event": "path", - "message": "Condition \"n <= 0\", taking false branch.", + "message": "Condition \"t->content == \"%:\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 784, - "event": "var_assign_var", - "message": "Assigning: \"p\" = \"buf.data\". Both are now tainted.", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 785, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1100, "event": "path", - "message": "Condition \"p < &buf.data[n]\", taking true branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 788, - "event": "var_assign_var", - "message": "Assigning: \"nhdr\" = \"(GElf_Nhdr *)p\". Both are now tainted.", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1100, + "event": "path", + "message": "Condition \"t->content == \"%)\"\", taking false branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 795, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1110, "event": "path", - "message": "Condition \"p <= &buf.data[n]\", taking true branch.", + "message": "Condition \"t->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 795, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1110, "event": "path", - "message": "Condition \"nhdr->n_type == 3\", taking true branch.", + "message": "Condition \"t->content == \"%(\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 795, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1123, "event": "path", - "message": "Condition \"nhdr->n_namesz == 4UL /* sizeof (\"GNU\") */\", taking true branch.", + "message": "Condition \"l == NULL\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 795, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1123, "event": "path", - "message": "Condition \"!memcmp(name, \"GNU\", 4UL /* sizeof (\"GNU\") */)\", taking true branch.", + "message": "Condition \"op == NULL\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 801, - "event": "tainted_data", - "message": "Passing tainted expression \"nhdr->n_descsz\" to \"hex_dump\", which uses it as a loop boundary.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1123, + "event": "path", + "message": "Condition \"r == NULL\", taking false branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", - "line": 801, - "event": "remediation", - "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", - "verbosity_level": 1 - } - ] - }, - { - "checker": "TOCTOU", - "cwe": 367, - "function": "handleRequest(std::__cxx11::basic_string, std::allocator > const &, std::__cxx11::basic_string, std::allocator > const &, std::__cxx11::basic_string, std::allocator >)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 17, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1729, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1131, "event": "path", - "message": "Condition \"f\", taking true branch.", + "message": "Condition \"l->content == \"systemtap_v\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1733, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1132, "event": "path", "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1739, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1142, "event": "path", - "message": "Condition \"file_exists(filename)\", taking true branch.", + "message": "Condition \"n\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1750, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1142, "event": "path", - "message": "Condition \"((versionfile >> kernel_version) >> kernel_version)->operator bool()\", taking true branch.", + "message": "Condition \"n->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1752, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1142, "event": "path", - "message": "Condition \"std::map, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > >::iterator(kernel_build_tree.find(kernel_version)) != std::map, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > >::iterator(kernel_build_tree.end())\", taking true branch.", + "message": "Condition \"n->content == \"&&\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1755, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1146, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"n\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1762, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1146, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"n->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1774, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1146, "event": "path", - "message": "Condition \"rc\", taking false branch.", + "message": "Condition \"n->content == \"||\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1780, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1147, "event": "path", - "message": "Condition \"u < words.we_wordc\", taking true branch.", + "message": "Breaking from loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1781, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1155, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"m\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1780, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1155, "event": "path", - "message": "Condition \"u < words.we_wordc\", taking true branch.", + "message": "Condition \"m->type == tok_operator\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1781, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1155, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"m->content == \"%?\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1780, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1159, "event": "path", - "message": "Condition \"u < words.we_wordc\", taking false branch.", + "message": "Condition \"result\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1787, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1163, "event": "path", - "message": "Condition \"rc\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1795, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1055, "event": "path", "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1803, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1058, "event": "path", - "message": "Condition \"retlen < 0\", taking false branch.", + "message": "Condition \"!this->pp_state.empty()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1803, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1062, "event": "path", - "message": "Condition \"retlen >= 4096\", taking false branch.", + "message": "Condition \"pp == parser::PP_SKIP_THEN\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1809, - "event": "fs_check_call", - "message": "Calling function \"stat\" to perform check on \"stapargfile\".", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1062, + "event": "path", + "message": "Condition \"pp == parser::PP_SKIP_ELSE\", taking false branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1810, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1067, "event": "path", - "message": "Condition \"rc\", taking false branch.", + "message": "Condition \"t == NULL\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1813, + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1067, + "event": "var_tested_null", + "message": "\"t\" is null.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1069, "event": "path", - "message": "Condition \"!arg\", taking false branch.", + "message": "Condition \"pp != parser::PP_NONE\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", - "line": 1819, - "event": "toctou", - "message": "Calling function \"fopen\" that uses \"stapargfile\" after a check function. This can cause a time-of-check, time-of-use race condition.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1076, + "event": "return_null_var", + "message": "Returning \"t\", which is null.", "verbosity_level": 1 - } - ] - }, - { - "checker": "OVERFLOW_BEFORE_WIDEN", - "cwe": 190, - "function": "bpf_interpret(unsigned long, bpf_insn const *, bpf_transport_context *)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/bpfinterp.cxx", - "line": 858, - "event": "overflow_before_widen", - "message": "Potentially overflowing expression \"(uint32_t)dr << s1\" with type \"uint32_t\" (32 bits, unsigned) is evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type \"uint64_t\" (64 bits, unsigned).", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1219, + "event": "var_assign", + "message": "Assigning: \"this->next_t\" = \"this->scan_pp()\", which might be \"nullptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/bpfinterp.cxx", - "line": 858, - "event": "remediation", - "message": "To avoid overflow, cast \"(uint32_t)dr\" to type \"uint64_t\" rather than casting the result of the potential overflow.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1222, + "event": "var_assign", + "message": "Assigning: \"this->last_t\" = \"this->next_t\", which might be \"nullptr\".", "verbosity_level": 1 - } - ] - }, - { - "checker": "UNINIT_CTOR", - "cwe": 457, - "function": "procfsprobe_data::procfsprobe_data(std::__cxx11::basic_string, std::allocator >, unsigned long, char, unsigned long, std::vector >)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 4, - "events": [ + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 167, - "event": "path", - "message": "Condition \"type == 'w'\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 1223, + "event": "return_null_var", + "message": "Returning \"this->next_t\", which is null.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 167, - "event": "path", - "message": "Condition \"type == 'w'\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2883, + "event": "var_assigned", + "message": "Assigning: \"t\" = \"nullptr\" return value from \"peek\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 167, - "event": "path", - "message": "Condition \"(bool)(type == 'w')\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2884, + "event": "dereference", + "message": "Dereferencing \"t\", which is known to be \"nullptr\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 156, - "event": "member_decl", - "message": "Class member declaration for \"read_prog\".", + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2736, + "event": "example_assign", + "message": "Example 1: Assigning: \"n\" = return value from \"this->peek()\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 167, - "event": "uninit_member", - "message": "Non-static class member \"read_prog\" is not initialized in this constructor nor in any functions that it calls.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "STRING_NULL", - "cwe": 170, - "imp": 1, - "function": "procfs_write_event_loop(procfsprobe_data *, bpf_transport_context *)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 5, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 2737, + "event": "example_checked", + "message": "Example 1 (cont.): \"n\" has its value checked in \"n != NULL\".", + "verbosity_level": 1 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 1935, - "event": "path", - "message": "Condition \"true\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3753, + "event": "example_assign", + "message": "Example 2: Assigning: \"t\" = return value from \"this->peek()\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 1939, - "event": "path", - "message": "Condition \"fd == -1\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3754, + "event": "example_checked", + "message": "Example 2 (cont.): \"t\" has its value checked in \"t\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 1957, - "event": "string_null_argument", - "message": "Function \"read\" does not terminate string \"*buffer_feed\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 4275, + "event": "example_assign", + "message": "Example 3: Assigning: \"t\" = return value from \"this->peek()\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 1959, - "event": "path", - "message": "Condition \"bytes_read == -1\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 4276, + "event": "example_checked", + "message": "Example 3 (cont.): \"t\" has its value checked in \"t\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 1963, - "event": "path", - "message": "Condition \"bytes_read > 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 4341, + "event": "example_assign", + "message": "Example 4: Assigning: \"t\" = return value from \"this->peek()\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", - "line": 1964, - "event": "string_null", - "message": "Passing unterminated string \"buffer_feed\" to \"basic_string\", which expects a null-terminated string. [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 4342, + "event": "example_checked", + "message": "Example 4 (cont.): \"t\" has its value checked in \"t != NULL\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3705, + "event": "example_assign", + "message": "Example 5: Assigning: \"t\" = return value from \"this->peek()\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/parse.cxx", + "line": 3706, + "event": "example_checked", + "message": "Example 5 (cont.): \"t\" has its value checked in \"t\".", + "verbosity_level": 1 } ] }, { "checker": "UNCAUGHT_EXCEPT", "cwe": 248, - "function": "main", + "function": "direct::~direct()", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynsdt.cxx", - "line": 333, - "event": "root_function", - "message": "In function \"main(int, char const **)\" an exception of type \"std::runtime_error\" is thrown and never caught.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 123, + "event": "exn_spec_violation", + "message": "An exception of type \"boost::wrapexcept\" is thrown but the throw list \"noexcept\" doesn't allow it to be thrown. This will cause a call to unexpected() which usually calls terminate().", "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynsdt.cxx", - "line": 351, + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 123, "event": "fun_call_w_exception", - "message": "Called function throws an exception of type \"std::runtime_error\".", + "message": "Called function throws an exception of type \"boost::wrapexcept\".", "verbosity_level": 1 - } - ] - }, - { - "checker": "UNCAUGHT_EXCEPT", - "cwe": 248, - "function": "main", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", - "line": 65, - "event": "root_function", - "message": "In function \"main(int, char * const *)\" an exception of type \"std::runtime_error\" is thrown and never caught.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 110, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"boost::wrapexcept\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", - "line": 149, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 2530, "event": "fun_call_w_exception", - "message": "Called function throws an exception of type \"std::runtime_error\".", + "message": "Called function throws an exception of type \"boost::wrapexcept\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 2452, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"boost::wrapexcept\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stringtable.h", + "line": 84, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"boost::wrapexcept\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stringtable.h", + "line": 77, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"boost::wrapexcept\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/boost/utility/string_ref.hpp", + "line": 166, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"boost::wrapexcept\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/boost/throw_exception.hpp", + "line": 171, + "event": "exception_thrown", + "message": "An exception of type \"boost::wrapexcept\" is thrown.", "verbosity_level": 1 } ] }, { - "checker": "UNCAUGHT_EXCEPT", - "cwe": 248, - "function": "main", + "checker": "STRING_OVERFLOW", + "cwe": 120, + "function": "unix_stapsh::unix_stapsh(systemtap_session &, uri_decoder const &)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 0, + "key_event_idx": 7, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", - "line": 65, - "event": "root_function", - "message": "In function \"main(int, char * const *)\" an exception of type \"std::runtime_error\" is thrown and never caught.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 687, + "event": "path", + "message": "Condition \"i < s.perpass_verbose[4]\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", - "line": 155, - "event": "fun_call_w_exception", - "message": "Called function throws an exception of type \"std::runtime_error\".", - "verbosity_level": 1 - } - ] - }, - { - "checker": "UNCAUGHT_EXCEPT", - "cwe": 248, - "function": "main", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 688, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", - "line": 65, - "event": "root_function", - "message": "In function \"main(int, char * const *)\" an exception of type \"std::runtime_error\" is thrown and never caught.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 687, + "event": "path", + "message": "Condition \"i < s.perpass_verbose[4]\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", - "line": 158, - "event": "fun_call_w_exception", - "message": "Called function throws an exception of type \"std::runtime_error\".", - "verbosity_level": 1 - } - ] - }, - { - "checker": "UNCAUGHT_EXCEPT", - "cwe": 248, - "function": "main", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 688, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", - "line": 65, - "event": "root_function", - "message": "In function \"main(int, char * const *)\" an exception of type \"std::runtime_error\" is thrown and never caught.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 687, + "event": "path", + "message": "Condition \"i < s.perpass_verbose[4]\", taking false branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", - "line": 161, - "event": "fun_call_w_exception", - "message": "Called function throws an exception of type \"std::runtime_error\".", - "verbosity_level": 1 - } - ] - }, - { - "checker": "UNCAUGHT_EXCEPT", - "cwe": 248, - "function": "main", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 692, + "event": "path", + "message": "Condition \"ud.path.empty()\", taking false branch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", - "line": 65, - "event": "root_function", - "message": "In function \"main(int, char * const *)\" an exception of type \"std::runtime_error\" is thrown and never caught.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 694, + "event": "path", + "message": "Condition \"ud.path.size() > 107UL /* sizeof (server.sun_path) - 1 */\", taking false branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", - "line": 164, - "event": "fun_call_w_exception", - "message": "Called function throws an exception of type \"std::runtime_error\".", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/remote.cxx", + "line": 696, + "event": "fixed_size_dest", + "message": "You might overrun the 108-character fixed-size string \"server.sun_path\" by copying the return value of \"c_str\" without checking the length.", + "verbosity_level": 0 } ] }, { - "checker": "FORWARD_NULL", - "cwe": 476, - "function": "open_output_file", + "checker": "UNINIT_CTOR", + "cwe": 457, + "function": "systemtap_session::systemtap_session(systemtap_session const &, std::__cxx11::basic_string, std::allocator > const &, std::__cxx11::basic_string, std::allocator > const &)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 2, + "key_event_idx": 3, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 326, - "event": "path", - "message": "Condition \"output_file == NULL\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.h", + "line": 238, + "event": "member_decl", + "message": "Class member declaration for \"read_stdin\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 326, - "event": "var_compare_op", - "message": "Comparing \"output_file\" to null implies that \"output_file\" might be null.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 419, + "event": "uninit_member", + "message": "Non-static class member \"read_stdin\" is not initialized in this constructor nor in any functions that it calls.", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 333, - "event": "var_deref_model", - "message": "Passing null pointer \"output_file\" to \"sprintf\", which dereferences it. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.h", + "line": 269, + "event": "member_decl", + "message": "Class member declaration for \"use_bpf_raw_tracepoint\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 419, + "event": "uninit_member", + "message": "Non-static class member \"use_bpf_raw_tracepoint\" is not initialized in this constructor nor in any functions that it calls.", "verbosity_level": 0 } ] }, { - "checker": "DIVIDE_BY_ZERO", - "cwe": 369, - "function": "output_cpu_logs", + "checker": "FORWARD_NULL", + "cwe": 476, + "function": "systemtap_session::parse_cmdline(int, char * const *)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 23, + "key_event_idx": 11, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 356, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 748, "event": "path", - "message": "Condition \"!subbuf\", taking true branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 756, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"grc < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 758, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Switch case value \"LONG_OPT_DOWNLOAD_DEBUGINFO\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1163, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "message": "Condition \"optarg\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1163, + "event": "var_compare_op", + "message": "Comparing \"optarg\" to null implies that \"optarg\" might be null.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1183, "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", + "message": "Breaking from switch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1675, "event": "path", - "message": "Continuing loop.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 748, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 756, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Condition \"grc < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 758, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "message": "Switch case value \"LONG_OPT_TMPDIR\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1154, "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", + "message": "Condition \"this->client_options\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1159, + "event": "var_deref_model", + "message": "Passing null pointer \"optarg\" to \"operator =\", which dereferences it. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 0 + } + ] + }, + { + "checker": "FORWARD_NULL", + "cwe": 476, + "function": "systemtap_session::parse_cmdline(int, char * const *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 11, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 748, "event": "path", - "message": "Continuing loop.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 756, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"grc < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 758, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Switch case value \"LONG_OPT_DOWNLOAD_DEBUGINFO\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1163, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "message": "Condition \"optarg\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, - "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1163, + "event": "var_compare_op", + "message": "Comparing \"optarg\" to null implies that \"optarg\" might be null.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1183, "event": "path", - "message": "Continuing loop.", + "message": "Breaking from switch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1675, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 748, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "cond_const", - "message": "Checking \"pcd->buf.subbufs_produced == 0UL\" implies that \"pcd->buf.subbufs_produced\" is 0 on the true branch.", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 756, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking false branch.", + "message": "Condition \"grc < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 758, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", + "message": "Switch case value \"LONG_OPT_REMOTE\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, - "event": "cond_at_most", - "message": "Checking \"pcd->buf.subbufs_produced >= chan.n_subbufs\" implies that \"chan.n_subbufs\" may be up to 0 on the true branch.", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 376, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1311, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"this->client_options\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 383, - "event": "divide_by_zero", - "message": "In expression \"(end - 1UL) % chan.n_subbufs\", modulo by expression \"chan.n_subbufs\" which may be zero has undefined behavior.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1316, + "event": "var_deref_model", + "message": "Passing null pointer \"optarg\" to \"basic_string\", which dereferences it. [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 0 } ] }, { - "checker": "DIVIDE_BY_ZERO", - "cwe": 369, - "function": "output_cpu_logs", + "checker": "FORWARD_NULL", + "cwe": 476, + "function": "systemtap_session::parse_cmdline(int, char * const *)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 23, + "key_event_idx": 11, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 356, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 748, "event": "path", - "message": "Condition \"!subbuf\", taking true branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 756, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"grc < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 758, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Switch case value \"LONG_OPT_DOWNLOAD_DEBUGINFO\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1163, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "message": "Condition \"optarg\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, - "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1163, + "event": "var_compare_op", + "message": "Comparing \"optarg\" to null implies that \"optarg\" might be null.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1183, "event": "path", - "message": "Continuing loop.", + "message": "Breaking from switch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1675, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 748, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 756, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "message": "Condition \"grc < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 758, "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", + "message": "Switch case value \"LONG_OPT_SYSENV\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1530, "event": "path", - "message": "Continuing loop.", + "message": "Condition \"this->client_options\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1534, + "event": "var_deref_model", + "message": "Passing null pointer \"optarg\" to \"basic_string\", which dereferences it. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 0 + } + ] + }, + { + "checker": "FORWARD_NULL", + "cwe": 476, + "function": "systemtap_session::parse_cmdline(int, char * const *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 10, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 748, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 756, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Condition \"grc < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 758, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "message": "Switch case value \"LONG_OPT_DOWNLOAD_DEBUGINFO\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1163, "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", + "message": "Condition \"optarg\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, - "event": "path", - "message": "Continuing loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1163, + "event": "var_compare_op", + "message": "Comparing \"optarg\" to null implies that \"optarg\" might be null.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1183, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Breaking from switch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1675, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "cond_const", - "message": "Checking \"pcd->buf.subbufs_produced == 0UL\" implies that \"pcd->buf.subbufs_produced\" is 0 on the true branch.", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 748, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking false branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 756, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", + "message": "Condition \"grc < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, - "event": "cond_at_most", - "message": "Checking \"pcd->buf.subbufs_produced >= chan.n_subbufs\" implies that \"chan.n_subbufs\" may be up to 0 on the true branch.", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 376, + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 758, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Switch case value \"LONG_OPT_RUNTIME\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 383, - "event": "divide_by_zero", - "message": "In expression \"start % chan.n_subbufs\", modulo by expression \"chan.n_subbufs\" which may be zero has undefined behavior.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/session.cxx", + "line": 1569, + "event": "var_deref_model", + "message": "Passing null pointer \"optarg\" to \"basic_string\", which dereferences it. [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 0 } ] }, { - "checker": "DIVIDE_BY_ZERO", - "cwe": 369, - "function": "output_cpu_logs", + "checker": "TAINTED_SCALAR", + "cwe": 606, + "function": "_Z19get_kernel_build_idB5cxx11R17systemtap_session", "language": "c/c++", "tool": "coverity", - "key_event_idx": 35, + "key_event_idx": 18, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 356, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 743, "event": "path", - "message": "Condition \"!subbuf\", taking true branch.", + "message": "Condition \"s.verbose > 2\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 747, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"buildIDfile.is_open()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 750, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Condition \"buildIDfile.good()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 759, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "message": "Condition \"found == false\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 759, "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", + "message": "Condition \"s.native_build\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 761, "event": "path", - "message": "Continuing loop.", + "message": "Condition \"s.verbose > 1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 766, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"fd < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 769, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Condition \"true /* (bool)(sizeof (Elf32_Nhdr) == sizeof (GElf_Nhdr)) */\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 770, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "message": "Condition \"true /* (bool)(sizeof (Elf64_Nhdr) == sizeof (GElf_Nhdr)) */\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, - "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 778, + "event": "tainted_argument", + "message": "Calling function \"read\" taints argument \"*buf.data\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 781, "event": "path", - "message": "Continuing loop.", + "message": "Condition \"n <= 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, - "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 784, + "event": "var_assign_var", + "message": "Assigning: \"p\" = \"buf.data\". Both are now tainted.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 785, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Condition \"p < &buf.data[n]\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 788, + "event": "var_assign_var", + "message": "Assigning: \"nhdr\" = \"(GElf_Nhdr *)p\". Both are now tainted.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 795, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "message": "Condition \"p <= &buf.data[n]\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 795, "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", + "message": "Condition \"nhdr->n_type == 3\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 795, "event": "path", - "message": "Continuing loop.", + "message": "Condition \"nhdr->n_namesz == 4UL /* sizeof (\"GNU\") */\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 795, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"!memcmp(name, \"GNU\", 4UL /* sizeof (\"GNU\") */)\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 801, + "event": "tainted_data", + "message": "Passing tainted expression \"nhdr->n_descsz\" to \"hex_dump\", which uses it as a loop boundary.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 226, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Condition \"!((ss << hex) << std::setfill('0'))\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "cond_const", - "message": "Checking \"pcd->buf.subbufs_produced == 0UL\" implies that \"pcd->buf.subbufs_produced\" is 0 on the true branch.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 229, + "event": "loop_bound_upper", + "message": "Using tainted expression \"len\" as a loop boundary.", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/setupdwfl.cxx", + "line": 801, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "TOCTOU", + "cwe": 367, + "function": "handleRequest(std::__cxx11::basic_string, std::allocator > const &, std::__cxx11::basic_string, std::allocator > const &, std::__cxx11::basic_string, std::allocator >)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 17, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1729, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking false branch.", + "message": "Condition \"f\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1733, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, - "event": "cond_at_most", - "message": "Checking \"pcd->buf.subbufs_produced >= chan.n_subbufs\" implies that \"chan.n_subbufs\" may be up to 0 on the true branch.", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 376, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1739, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"file_exists(filename)\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 393, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1750, "event": "path", - "message": "Condition \"n < end\", taking false branch.", + "message": "Condition \"((versionfile >> kernel_version) >> kernel_version)->operator bool()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 433, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1752, "event": "path", - "message": "Condition \"retrieve_all == 1\", taking true branch.", + "message": "Condition \"std::map, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > >::iterator(kernel_build_tree.find(kernel_version)) != std::map, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::__cxx11::basic_string, std::allocator > > > >::iterator(kernel_build_tree.end())\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 433, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1755, "event": "path", - "message": "Condition \"start != 0\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 447, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1762, "event": "path", - "message": "Condition \"len\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 450, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1774, "event": "path", - "message": "Condition \"fwrite(subbuf, len, 1, outfp) != 1\", taking true branch.", + "message": "Condition \"rc\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 458, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1780, "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", + "message": "Condition \"u < words.we_wordc\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 460, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1781, "event": "path", "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1780, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"u < words.we_wordc\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1781, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking false branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1780, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", + "message": "Condition \"u < words.we_wordc\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 376, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1787, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"rc\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 393, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1795, "event": "path", - "message": "Condition \"n < end\", taking true branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 395, - "event": "divide_by_zero", - "message": "In expression \"n % chan.n_subbufs\", modulo by expression \"chan.n_subbufs\" which may be zero has undefined behavior.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "DIVIDE_BY_ZERO", - "cwe": 369, - "function": "output_cpu_logs", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 26, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 356, - "event": "path", - "message": "Condition \"!subbuf\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, - "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, - "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, - "event": "path", - "message": "Continuing loop.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, - "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1803, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Condition \"retlen < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1803, "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "message": "Condition \"retlen >= 4096\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, - "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1809, + "event": "fs_check_call", + "message": "Calling function \"stat\" to perform check on \"stapargfile\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1810, "event": "path", - "message": "Continuing loop.", + "message": "Condition \"rc\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1813, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"!arg\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", - "verbosity_level": 2 - }, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stap-serverd.cxx", + "line": 1819, + "event": "toctou", + "message": "Calling function \"fopen\" that uses \"stapargfile\" after a check function. This can cause a time-of-check, time-of-use race condition.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "OVERFLOW_BEFORE_WIDEN", + "cwe": 190, + "function": "bpf_interpret(unsigned long, bpf_insn const *, bpf_transport_context *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/bpfinterp.cxx", + "line": 858, + "event": "overflow_before_widen", + "message": "Potentially overflowing expression \"(uint32_t)dr << s1\" with type \"uint32_t\" (32 bits, unsigned) is evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type \"uint64_t\" (64 bits, unsigned).", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, - "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", - "verbosity_level": 2 - }, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/bpfinterp.cxx", + "line": 858, + "event": "remediation", + "message": "To avoid overflow, cast \"(uint32_t)dr\" to type \"uint64_t\" rather than casting the result of the potential overflow.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "UNINIT_CTOR", + "cwe": 457, + "function": "procfsprobe_data::procfsprobe_data(std::__cxx11::basic_string, std::allocator >, unsigned long, char, unsigned long, std::vector >)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 4, + "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 167, "event": "path", - "message": "Continuing loop.", + "message": "Condition \"type == 'w'\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 167, "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", + "message": "Condition \"type == 'w'\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 167, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "message": "Condition \"(bool)(type == 'w')\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "cond_const", - "message": "Checking \"pcd->buf.subbufs_produced == 0UL\" implies that \"pcd->buf.subbufs_produced\" is 0 on the true branch.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 156, + "event": "member_decl", + "message": "Class member declaration for \"read_prog\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking false branch.", - "verbosity_level": 2 - }, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 167, + "event": "uninit_member", + "message": "Non-static class member \"read_prog\" is not initialized in this constructor nor in any functions that it calls.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "STRING_NULL", + "cwe": 170, + "imp": 1, + "function": "procfs_write_event_loop(procfsprobe_data *, bpf_transport_context *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 5, + "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 1935, "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", + "message": "Condition \"true\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, - "event": "cond_at_most", - "message": "Checking \"pcd->buf.subbufs_produced >= chan.n_subbufs\" implies that \"chan.n_subbufs\" may be up to 0 on the true branch.", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 376, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 1939, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"fd == -1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 393, - "event": "path", - "message": "Condition \"n < end\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 1957, + "event": "string_null_argument", + "message": "Function \"read\" does not terminate string \"*buffer_feed\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 433, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 1959, "event": "path", - "message": "Condition \"retrieve_all == 1\", taking true branch.", + "message": "Condition \"bytes_read == -1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 433, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 1963, "event": "path", - "message": "Condition \"start != 0\", taking true branch.", + "message": "Condition \"bytes_read > 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 436, - "event": "divide_by_zero", - "message": "In expression \"(start - 1UL) % chan.n_subbufs\", modulo by expression \"chan.n_subbufs\" which may be zero has undefined behavior.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapbpf/stapbpf.cxx", + "line": 1964, + "event": "string_null", + "message": "Passing unterminated string \"buffer_feed\" to \"basic_string\", which expects a null-terminated string. [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 0 } ] }, { - "checker": "DIVIDE_BY_ZERO", - "cwe": 369, - "function": "output_cpu_logs", + "checker": "UNCAUGHT_EXCEPT", + "cwe": 248, + "function": "main", "language": "c/c++", "tool": "coverity", - "key_event_idx": 26, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 356, - "event": "path", - "message": "Condition \"!subbuf\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynsdt.cxx", + "line": 333, + "event": "root_function", + "message": "In function \"main(int, char const **)\" an exception of type \"std::runtime_error\" is thrown and never caught.", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, - "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynsdt.cxx", + "line": 351, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 548, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 667, + "event": "exception_thrown", + "message": "An exception of type \"std::runtime_error\" is thrown.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "UNCAUGHT_EXCEPT", + "cwe": 248, + "function": "main", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", + "line": 65, + "event": "root_function", + "message": "In function \"main(int, char * const *)\" an exception of type \"std::runtime_error\" is thrown and never caught.", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, - "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", + "line": 149, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, - "event": "path", - "message": "Continuing loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/mutator.cxx", + "line": 207, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, - "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynprobe.cxx", + "line": 36, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynutil.h", + "line": 38, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynutil.cxx", + "line": 193, + "event": "exception_thrown", + "message": "An exception of type \"std::runtime_error\" is thrown.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "UNCAUGHT_EXCEPT", + "cwe": 248, + "function": "main", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", + "line": 65, + "event": "root_function", + "message": "In function \"main(int, char * const *)\" an exception of type \"std::runtime_error\" is thrown and never caught.", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, - "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", + "line": 155, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, - "event": "path", - "message": "Continuing loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/mutator.cxx", + "line": 265, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, - "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 548, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 667, + "event": "exception_thrown", + "message": "An exception of type \"std::runtime_error\" is thrown.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "UNCAUGHT_EXCEPT", + "cwe": 248, + "function": "main", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", + "line": 65, + "event": "root_function", + "message": "In function \"main(int, char * const *)\" an exception of type \"std::runtime_error\" is thrown and never caught.", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", + "line": 158, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 364, - "event": "path", - "message": "Condition \"is_global == 1\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/mutator.cxx", + "line": 313, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 369, - "event": "path", - "message": "Continuing loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/mutatee.cxx", + "line": 633, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 360, - "event": "path", - "message": "Condition \"i < kt->cpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/mutatee.cxx", + "line": 515, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/mutatee.cxx", + "line": 330, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "cond_const", - "message": "Checking \"pcd->buf.subbufs_produced == 0UL\" implies that \"pcd->buf.subbufs_produced\" is 0 on the true branch.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 215, + "event": "exception_thrown", + "message": "An exception of type \"std::runtime_error\" is thrown.", "verbosity_level": 1 + } + ] + }, + { + "checker": "UNCAUGHT_EXCEPT", + "cwe": 248, + "function": "main", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", + "line": 65, + "event": "root_function", + "message": "In function \"main(int, char * const *)\" an exception of type \"std::runtime_error\" is thrown and never caught.", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 363, - "event": "path", - "message": "Condition \"pcd->buf.offset == 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", + "line": 161, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, - "event": "path", - "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/mutator.cxx", + "line": 577, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 374, - "event": "cond_at_most", - "message": "Checking \"pcd->buf.subbufs_produced >= chan.n_subbufs\" implies that \"chan.n_subbufs\" may be up to 0 on the true branch.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/mutator.cxx", + "line": 445, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 376, - "event": "path", - "message": "Falling through to end of if statement.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 393, - "event": "path", - "message": "Condition \"n < end\", taking false branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 433, - "event": "path", - "message": "Condition \"retrieve_all == 1\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 433, - "event": "path", - "message": "Condition \"start != 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynutil.h", + "line": 38, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", - "line": 443, - "event": "divide_by_zero", - "message": "In expression \"(start - 1UL) % chan.n_subbufs\", modulo by expression \"chan.n_subbufs\" which may be zero has undefined behavior.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynutil.cxx", + "line": 193, + "event": "exception_thrown", + "message": "An exception of type \"std::runtime_error\" is thrown.", + "verbosity_level": 1 } ] }, { - "checker": "UNINIT_CTOR", - "cwe": 457, - "function": "stapregex::state::state(stapregex::dfa *, std::__cxx11::list > *)", + "checker": "UNCAUGHT_EXCEPT", + "cwe": 248, + "function": "main", "language": "c/c++", "tool": "coverity", - "key_event_idx": 1, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.h", - "line": 120, - "event": "member_decl", - "message": "Class member declaration for \"accept_kp\".", + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", + "line": 65, + "event": "root_function", + "message": "In function \"main(int, char * const *)\" an exception of type \"std::runtime_error\" is thrown and never caught.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/stapdyn.cxx", + "line": 164, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 182, - "event": "uninit_member", - "message": "Non-static class member \"accept_kp\" is not initialized in this constructor nor in any functions that it calls.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/mutator.cxx", + "line": 664, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynutil.h", + "line": 38, + "event": "fun_call_w_exception", + "message": "Called function throws an exception of type \"std::runtime_error\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapdyn/dynutil.cxx", + "line": 193, + "event": "exception_thrown", + "message": "An exception of type \"std::runtime_error\" is thrown.", + "verbosity_level": 1 } ] }, { - "checker": "UNINIT", - "cwe": 457, - "imp": 1, - "function": "stapregex::rebalance_priorities(std::stack > > &, std::stack > > &)", + "checker": "FORWARD_NULL", + "cwe": 476, + "function": "open_output_file", "language": "c/c++", "tool": "coverity", "key_event_idx": 2, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 260, - "event": "var_decl", - "message": "Declaring variable \"sorted_worklist\".", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 261, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 326, "event": "path", - "message": "Condition \"!worklist->empty()\", taking true branch.", + "message": "Condition \"output_file == NULL\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 264, - "event": "uninit_use_in_call", - "message": "Using uninitialized value \"sorted_worklist.comp\" when calling \"push\".", + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 326, + "event": "var_compare_op", + "message": "Comparing \"output_file\" to null implies that \"output_file\" might be null.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 333, + "event": "var_deref_model", + "message": "Passing null pointer \"output_file\" to \"sprintf\", which dereferences it. [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 0 } ] }, { - "checker": "UNINIT", - "cwe": 457, - "imp": 1, - "function": "stapregex::rebalance_priorities(std::stack > > &, std::stack > > &)", + "checker": "DIVIDE_BY_ZERO", + "cwe": 369, + "function": "output_cpu_logs", "language": "c/c++", "tool": "coverity", - "key_event_idx": 4, + "key_event_idx": 23, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 261, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 356, "event": "path", - "message": "Condition \"!worklist->empty()\", taking true branch.", + "message": "Condition \"!subbuf\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 265, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 261, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"!worklist->empty()\", taking false branch.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 269, - "event": "var_decl", - "message": "Declaring variable \"new_priorities\".", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, + "event": "path", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 270, - "event": "uninit_use_in_call", - "message": "Using uninitialized value \"new_priorities.comp\" when calling \"push\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "UNINIT", - "cwe": 457, - "imp": 1, - "function": "stapregex::rebalance_priorities(std::stack > > &, std::stack > > &)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 8, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 261, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Condition \"!worklist->empty()\", taking true branch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 265, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 261, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"!worklist->empty()\", taking false branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 268, - "event": "var_decl", - "message": "Declaring variable \"sorted_priorities\".", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, + "event": "path", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 271, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"new_priorities.size() < sorted_worklist.size()\", taking true branch.", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 276, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 271, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Condition \"new_priorities.size() < sorted_worklist.size()\", taking false branch.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 277, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"i < sorted_worklist.size()\", taking true branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", - "line": 280, - "event": "uninit_use_in_call", - "message": "Using uninitialized value \"sorted_priorities.comp\" when calling \"push\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "NEGATIVE_RETURNS", - "cwe": 606, - "function": "stapregex::regexp::compile()", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 2, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-tree.cxx", - "line": 250, - "event": "negative_return_fn", - "message": "Function \"this->ins_size()\" returns a negative number.", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, + "event": "path", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-tree.cxx", - "line": 250, - "event": "assign", - "message": "Assigning: \"k\" = \"this->ins_size()\".", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, + "event": "path", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-tree.cxx", - "line": 254, - "event": "negative_returns", - "message": "Using unsigned variable \"k\" in a loop exit condition.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "RESOURCE_LEAK", - "cwe": 404, - "imp": 1, - "function": "parse_args", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 13, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 140, - "event": "path", - "message": "Condition \"isatty(2)\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 140, - "event": "path", - "message": "Condition \"getenv(\"TERM\")\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 140, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Condition \"strcmp((getenv(\"TERM\") ?: \"notdumb\"), \"dumb\")\", taking true branch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Switch case value \"117\".", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 151, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"optarg\", taking true branch.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 152, - "event": "alloc_fn", - "message": "Storage is returned from allocation function \"strdup\".", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 152, - "event": "var_assign", - "message": "Assigning: \"uprobes_path\" = storage returned from \"strdup(optarg)\".", + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, + "event": "cond_const", + "message": "Checking \"pcd->buf.subbufs_produced == 0UL\" implies that \"pcd->buf.subbufs_produced\" is 0 on the true branch.", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 153, - "event": "path", - "message": "Breaking from switch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pcd->buf.offset == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, - "event": "path", - "message": "Switch case value \"117\".", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, + "event": "cond_at_most", + "message": "Checking \"pcd->buf.subbufs_produced >= chan.n_subbufs\" implies that \"chan.n_subbufs\" may be up to 0 on the true branch.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 151, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 376, "event": "path", - "message": "Condition \"optarg\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 152, - "event": "overwrite_var", - "message": "Overwriting \"uprobes_path\" in \"uprobes_path = strdup(optarg)\" leaks the storage that \"uprobes_path\" points to.", + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 383, + "event": "divide_by_zero", + "message": "In expression \"(end - 1UL) % chan.n_subbufs\", modulo by expression \"chan.n_subbufs\" which may be zero has undefined behavior.", "verbosity_level": 0 } ] }, { - "checker": "RESOURCE_LEAK", - "cwe": 404, - "imp": 1, - "function": "parse_args", + "checker": "DIVIDE_BY_ZERO", + "cwe": 369, + "function": "output_cpu_logs", "language": "c/c++", "tool": "coverity", - "key_event_idx": 122, + "key_event_idx": 23, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 140, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 356, "event": "path", - "message": "Condition \"isatty(2)\", taking true branch.", + "message": "Condition \"!subbuf\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 140, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"getenv(\"TERM\")\", taking true branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 140, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"strcmp((getenv(\"TERM\") ?: \"notdumb\"), \"dumb\")\", taking true branch.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Switch case value \"117\".", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 151, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Condition \"optarg\", taking true branch.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 153, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Switch case value \"118\".", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 156, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Breaking from switch.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Switch case value \"118\".", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 156, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Switch case value \"119\".", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 159, - "event": "path", - "message": "Breaking from switch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, + "event": "cond_const", + "message": "Checking \"pcd->buf.subbufs_produced == 0UL\" implies that \"pcd->buf.subbufs_produced\" is 0 on the true branch.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pcd->buf.offset == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, - "event": "path", - "message": "Switch case value \"98\".", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 162, - "event": "path", - "message": "Condition \"buffer_size < 1\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, + "event": "cond_at_most", + "message": "Checking \"pcd->buf.subbufs_produced >= chan.n_subbufs\" implies that \"chan.n_subbufs\" may be up to 0 on the true branch.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 162, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 376, "event": "path", - "message": "Condition \"buffer_size > 4095\", taking false branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 166, - "event": "path", - "message": "Breaking from switch.", - "verbosity_level": 2 - }, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 383, + "event": "divide_by_zero", + "message": "In expression \"start % chan.n_subbufs\", modulo by expression \"chan.n_subbufs\" which may be zero has undefined behavior.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "DIVIDE_BY_ZERO", + "cwe": 369, + "function": "output_cpu_logs", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 35, + "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 356, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"!subbuf\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Switch case value \"116\".", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 170, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Switch case value \"116\".", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 170, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Switch case value \"78\".", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 174, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"target_namespaces_pid < 1\", taking false branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 178, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Switch case value \"100\".", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 182, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, - "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, + "event": "cond_const", + "message": "Checking \"pcd->buf.subbufs_produced == 0UL\" implies that \"pcd->buf.subbufs_produced\" is 0 on the true branch.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Switch case value \"99\".", + "message": "Condition \"pcd->buf.offset == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 185, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, + "event": "cond_at_most", + "message": "Checking \"pcd->buf.subbufs_produced >= chan.n_subbufs\" implies that \"chan.n_subbufs\" may be up to 0 on the true branch.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 376, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 393, "event": "path", - "message": "Switch case value \"111\".", + "message": "Condition \"n < end\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 188, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 433, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"retrieve_all == 1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 433, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"start != 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 447, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"len\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 450, "event": "path", - "message": "Switch case value \"105\".", + "message": "Condition \"fwrite(subbuf, len, 1, outfp) != 1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 191, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 458, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 460, "event": "path", "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Switch case value \"82\".", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 194, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 376, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 393, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"n < end\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 395, + "event": "divide_by_zero", + "message": "In expression \"n % chan.n_subbufs\", modulo by expression \"chan.n_subbufs\" which may be zero has undefined behavior.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "DIVIDE_BY_ZERO", + "cwe": 369, + "function": "output_cpu_logs", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 26, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 356, "event": "path", - "message": "Switch case value \"65\".", + "message": "Condition \"!subbuf\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 197, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Switch case value \"76\".", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 200, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Breaking from switch.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Switch case value \"68\".", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 203, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Switch case value \"70\".", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 206, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"relay_basedir_fd < 0\", taking false branch.", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 210, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Switch case value \"70\".", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 206, - "event": "path", - "message": "Condition \"relay_basedir_fd < 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, + "event": "cond_const", + "message": "Checking \"pcd->buf.subbufs_produced == 0UL\" implies that \"pcd->buf.subbufs_produced\" is 0 on the true branch.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 210, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"pcd->buf.offset == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, + "event": "cond_at_most", + "message": "Checking \"pcd->buf.subbufs_produced >= chan.n_subbufs\" implies that \"chan.n_subbufs\" may be up to 0 on the true branch.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 376, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 393, "event": "path", - "message": "Switch case value \"83\".", + "message": "Condition \"n < end\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 212, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 433, "event": "path", - "message": "Condition \"optarg != NULL\", taking true branch.", + "message": "Condition \"retrieve_all == 1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 212, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 433, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"start != 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 215, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 436, + "event": "divide_by_zero", + "message": "In expression \"(start - 1UL) % chan.n_subbufs\", modulo by expression \"chan.n_subbufs\" which may be zero has undefined behavior.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "DIVIDE_BY_ZERO", + "cwe": 369, + "function": "output_cpu_logs", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 26, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 356, "event": "path", - "message": "Condition \"s[0] == ','\", taking true branch.", + "message": "Condition \"!subbuf\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 217, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"s[0] != 0\", taking false branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 221, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Switch case value \"83\".", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 212, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"optarg != NULL\", taking true branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 212, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 215, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"s[0] == ','\", taking true branch.", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 217, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Condition \"s[0] != 0\", taking false branch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 221, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Breaking from switch.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Switch case value \"83\".", + "message": "Condition \"pcd->buf.offset == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 212, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 364, "event": "path", - "message": "Condition \"optarg != NULL\", taking true branch.", + "message": "Condition \"is_global == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 212, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 369, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 215, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 360, "event": "path", - "message": "Condition \"s[0] == ','\", taking true branch.", + "message": "Condition \"i < kt->cpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 217, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Condition \"s[0] != 0\", taking false branch.", + "message": "Condition \"pcd->buf.subbufs_produced == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 221, - "event": "path", - "message": "Breaking from switch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, + "event": "cond_const", + "message": "Checking \"pcd->buf.subbufs_produced == 0UL\" implies that \"pcd->buf.subbufs_produced\" is 0 on the true branch.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 363, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pcd->buf.offset == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"pcd->buf.subbufs_produced >= chan.n_subbufs\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 374, + "event": "cond_at_most", + "message": "Checking \"pcd->buf.subbufs_produced >= chan.n_subbufs\" implies that \"chan.n_subbufs\" may be up to 0 on the true branch.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 376, "event": "path", - "message": "Switch case value \"114\".", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 223, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 393, "event": "path", - "message": "Condition \"optarg != NULL\", taking true branch.", + "message": "Condition \"n < end\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 223, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 433, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"retrieve_all == 1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 226, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 433, "event": "path", - "message": "Condition \"s[0] == ':'\", taking true branch.", + "message": "Condition \"start != 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 227, - "event": "alloc_fn", - "message": "Storage is returned from allocation function \"strdup\".", + "file_name": "/builddir/build/BUILD/systemtap-4.4/staplog.c", + "line": 443, + "event": "divide_by_zero", + "message": "In expression \"(start - 1UL) % chan.n_subbufs\", modulo by expression \"chan.n_subbufs\" which may be zero has undefined behavior.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "UNINIT_CTOR", + "cwe": 457, + "function": "stapregex::state::state(stapregex::dfa *, std::__cxx11::list > *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 1, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.h", + "line": 120, + "event": "member_decl", + "message": "Class member declaration for \"accept_kp\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 227, - "event": "var_assign", - "message": "Assigning: \"remote_uri\" = storage returned from \"strdup(&s[1])\".", + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 182, + "event": "uninit_member", + "message": "Non-static class member \"accept_kp\" is not initialized in this constructor nor in any functions that it calls.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "UNINIT", + "cwe": 457, + "imp": 1, + "function": "stapregex::rebalance_priorities(std::stack > > &, std::stack > > &)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 2, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 260, + "event": "var_decl", + "message": "Declaring variable \"sorted_worklist\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 229, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 261, "event": "path", - "message": "Condition \"remote_id < 0\", taking false branch.", + "message": "Condition \"!worklist->empty()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 229, - "event": "path", - "message": "Condition \"remote_uri == NULL\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 264, + "event": "uninit_use_in_call", + "message": "Using uninitialized value \"sorted_worklist.comp\" when calling \"push\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 229, - "event": "path", - "message": "Condition \"remote_uri[0] == 0\", taking false branch.", - "verbosity_level": 2 - }, + "file_name": "/usr/include/c++/10/bits/stl_queue.h", + "line": 643, + "event": "read_parm_fld", + "message": "Reading field of 'this'.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "UNINIT", + "cwe": 457, + "imp": 1, + "function": "stapregex::rebalance_priorities(std::stack > > &, std::stack > > &)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 4, + "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 233, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 261, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"!worklist->empty()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 278, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 265, "event": "path", "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 143, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 261, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "message": "Condition \"!worklist->empty()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 148, - "event": "path", - "message": "Switch case value \"114\".", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 269, + "event": "var_decl", + "message": "Declaring variable \"new_priorities\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 223, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 270, + "event": "uninit_use_in_call", + "message": "Using uninitialized value \"new_priorities.comp\" when calling \"push\".", + "verbosity_level": 0 + }, + { + "file_name": "/usr/include/c++/10/bits/stl_queue.h", + "line": 651, + "event": "read_parm_fld", + "message": "Reading field of 'this'.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "UNINIT", + "cwe": 457, + "imp": 1, + "function": "stapregex::rebalance_priorities(std::stack > > &, std::stack > > &)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 8, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 261, "event": "path", - "message": "Condition \"optarg != NULL\", taking true branch.", + "message": "Condition \"!worklist->empty()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 223, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 265, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 226, + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 261, "event": "path", - "message": "Condition \"s[0] == ':'\", taking true branch.", + "message": "Condition \"!worklist->empty()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", - "line": 227, - "event": "overwrite_var", - "message": "Overwriting \"remote_uri\" in \"remote_uri = strdup(&s[1])\" leaks the storage that \"remote_uri\" points to.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 268, + "event": "var_decl", + "message": "Declaring variable \"sorted_priorities\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 271, + "event": "path", + "message": "Condition \"new_priorities.size() < sorted_worklist.size()\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 276, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 271, + "event": "path", + "message": "Condition \"new_priorities.size() < sorted_worklist.size()\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 277, + "event": "path", + "message": "Condition \"i < sorted_worklist.size()\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-dfa.cxx", + "line": 280, + "event": "uninit_use_in_call", + "message": "Using uninitialized value \"sorted_priorities.comp\" when calling \"push\".", + "verbosity_level": 0 + }, + { + "file_name": "/usr/include/c++/10/bits/stl_queue.h", + "line": 643, + "event": "read_parm_fld", + "message": "Reading field of 'this'.", + "verbosity_level": 1 } ] }, { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "stp_main_loop", + "checker": "NEGATIVE_RETURNS", + "cwe": 606, + "function": "stapregex::regexp::compile()", "language": "c/c++", "tool": "coverity", - "key_event_idx": 0, + "key_event_idx": 5, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/mainloop.c", - "line": 856, - "event": "invalid_type", - "message": "Precision argument \"strlen(dupstr) - 9UL\" to format specifier \"%.*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-tree.cxx", + "line": 250, + "event": "negative_return_fn", + "message": "Function \"this->ins_size()\" returns a negative number.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-tree.h", + "line": 117, + "event": "path", + "message": "Condition \"this->size < 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-tree.h", + "line": 117, + "event": "var_tested_neg", + "message": "Variable \"this->size\" is negative.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-tree.h", + "line": 117, + "event": "return_negative_variable", + "message": "Explicitly returning negative variable \"this->size\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-tree.cxx", + "line": 250, + "event": "assign", + "message": "Assigning: \"k\" = \"this->ins_size()\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/stapregex-tree.cxx", + "line": 254, + "event": "negative_returns", + "message": "Using unsigned variable \"k\" in a loop exit condition.", "verbosity_level": 0 } ] }, { - "checker": "NEGATIVE_RETURNS", - "cwe": 687, - "function": "monitor_render", + "checker": "RESOURCE_LEAK", + "cwe": 404, + "imp": 1, + "function": "parse_args", "language": "c/c++", "tool": "coverity", - "key_event_idx": 26, + "key_event_idx": 13, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 308, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 140, "event": "path", - "message": "Condition \"resized\", taking true branch.", + "message": "Condition \"isatty(2)\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 312, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 140, "event": "path", - "message": "Condition \"NULL != (void const *)output\", taking true branch.", + "message": "Condition \"getenv(\"TERM\")\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 312, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 140, "event": "path", - "message": "Condition \"NULL != (void const *)output\", taking true branch.", + "message": "Condition \"strcmp((getenv(\"TERM\") ?: \"notdumb\"), \"dumb\")\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 313, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, "event": "path", - "message": "Condition \"0 > h_queue.count - max_rows + 1\", taking true branch.", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 313, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, "event": "path", - "message": "Condition \"((0 > h_queue.count - max_rows + 1) ? 0 : (h_queue.count - max_rows + 1)) < output_scroll\", taking true branch.", + "message": "Switch case value \"117\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 313, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 151, "event": "path", - "message": "Condition \"0 > h_queue.count - max_rows + 1\", taking true branch.", + "message": "Condition \"optarg\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 318, - "event": "path", - "message": "Condition \"i < h_queue.count - output_scroll\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 152, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"strdup\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 319, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 152, + "event": "var_assign", + "message": "Assigning: \"uprobes_path\" = storage returned from \"strdup(optarg)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 318, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 153, "event": "path", - "message": "Condition \"i < h_queue.count - output_scroll\", taking true branch.", + "message": "Breaking from switch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 319, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, "event": "path", "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 318, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, "event": "path", - "message": "Condition \"i < h_queue.count - output_scroll\", taking false branch.", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 324, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, "event": "path", - "message": "Condition \"status_hidden\", taking false branch.", + "message": "Switch case value \"117\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 327, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 151, "event": "path", - "message": "Condition \"!input\", taking true branch.", + "message": "Condition \"optarg\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 327, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 152, + "event": "overwrite_var", + "message": "Overwriting \"uprobes_path\" in \"uprobes_path = strdup(optarg)\" leaks the storage that \"uprobes_path\" points to.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "RESOURCE_LEAK", + "cwe": 404, + "imp": 1, + "function": "parse_args", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 122, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 140, "event": "path", - "message": "Condition \"rendered\", taking true branch.", + "message": "Condition \"isatty(2)\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 327, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 140, "event": "path", - "message": "Condition \"(elapsed_time = current_time - start_time) < monitor_interval\", taking false branch.", + "message": "Condition \"getenv(\"TERM\")\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 333, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 140, "event": "path", - "message": "Condition \"NULL != (void const *)status\", taking false branch.", + "message": "Condition \"strcmp((getenv(\"TERM\") ?: \"notdumb\"), \"dumb\")\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 333, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, "event": "path", - "message": "Condition \"NULL != (void const *)status\", taking false branch.", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 333, - "event": "var_tested_neg", - "message": "Assigning: \"monitor_x\" = a negative value.", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 335, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, "event": "path", - "message": "Condition \"256 < monitor_x\", taking false branch.", + "message": "Switch case value \"117\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 335, - "event": "assign", - "message": "Assigning: \"max_cols\" = \"(256 < monitor_x) ? 256 : monitor_x\".", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 151, + "event": "path", + "message": "Condition \"optarg\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 342, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 153, "event": "path", - "message": "Condition \"_rc >= 4096 /* (int)sizeof (path) */\", taking false branch.", + "message": "Breaking from switch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 342, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, "event": "path", - "message": "Condition \"({...; _rc;})\", taking false branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 345, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, "event": "path", - "message": "Condition \"monitor_fp\", taking true branch.", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 350, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, "event": "path", - "message": "Condition \"bytes >= 1\", taking true branch.", + "message": "Switch case value \"118\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 353, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 156, "event": "path", - "message": "Condition \"jso\", taking true branch.", + "message": "Breaking from switch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 360, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, "event": "path", - "message": "Condition \"jso\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 394, - "event": "negative_returns", - "message": "\"max_cols\" is passed to a parameter that cannot be negative. [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 451, - "event": "invalid_type", - "message": "Field width argument \"width[p_index]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"118\".", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 452, - "event": "invalid_type", - "message": "Field width argument \"width[p_state]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 156, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 453, - "event": "invalid_type", - "message": "Field width argument \"width[p_hits]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 454, - "event": "invalid_type", - "message": "Field width argument \"width[p_min]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 455, - "event": "invalid_type", - "message": "Field width argument \"width[p_avg]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"119\".", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 456, - "event": "invalid_type", - "message": "Field width argument \"width[p_max]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 159, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 469, - "event": "invalid_type", - "message": "Field width argument \"width[p_index]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 471, - "event": "invalid_type", - "message": "Field width argument \"width[p_state]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 473, - "event": "invalid_type", - "message": "Field width argument \"width[p_hits]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"98\".", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 475, - "event": "invalid_type", - "message": "Field width argument \"width[p_min]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 162, + "event": "path", + "message": "Condition \"buffer_size < 1\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 162, + "event": "path", + "message": "Condition \"buffer_size > 4095\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 166, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"116\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 170, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"116\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 170, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"78\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 174, + "event": "path", + "message": "Condition \"target_namespaces_pid < 1\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 178, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"100\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 182, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"99\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 185, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"111\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 188, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"105\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 191, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"82\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 194, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"65\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 197, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"76\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 200, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"68\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 203, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"70\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 206, + "event": "path", + "message": "Condition \"relay_basedir_fd < 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 210, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"70\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 206, + "event": "path", + "message": "Condition \"relay_basedir_fd < 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 210, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"83\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 212, + "event": "path", + "message": "Condition \"optarg != NULL\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 212, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 215, + "event": "path", + "message": "Condition \"s[0] == ','\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 217, + "event": "path", + "message": "Condition \"s[0] != 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 221, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"83\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 212, + "event": "path", + "message": "Condition \"optarg != NULL\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 212, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 215, + "event": "path", + "message": "Condition \"s[0] == ','\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 217, + "event": "path", + "message": "Condition \"s[0] != 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 221, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"83\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 212, + "event": "path", + "message": "Condition \"optarg != NULL\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 212, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 215, + "event": "path", + "message": "Condition \"s[0] == ','\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 217, + "event": "path", + "message": "Condition \"s[0] != 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 221, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"114\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 223, + "event": "path", + "message": "Condition \"optarg != NULL\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 223, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 226, + "event": "path", + "message": "Condition \"s[0] == ':'\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 227, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"strdup\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 227, + "event": "var_assign", + "message": "Assigning: \"remote_uri\" = storage returned from \"strdup(&s[1])\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 229, + "event": "path", + "message": "Condition \"remote_id < 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 229, + "event": "path", + "message": "Condition \"remote_uri == NULL\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 229, + "event": "path", + "message": "Condition \"remote_uri[0] == 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 233, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 278, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 143, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"ALu::vihb:t:dc:o:x:N:S:DwRr:VT:C:M:F:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 148, + "event": "path", + "message": "Switch case value \"114\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 223, + "event": "path", + "message": "Condition \"optarg != NULL\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 223, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 226, + "event": "path", + "message": "Condition \"s[0] == ':'\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 227, + "event": "overwrite_var", + "message": "Overwriting \"remote_uri\" in \"remote_uri = strdup(&s[1])\" leaks the storage that \"remote_uri\" points to.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "stp_main_loop", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/mainloop.c", + "line": 856, + "event": "invalid_type", + "message": "Precision argument \"strlen(dupstr) - 9UL\" to format specifier \"%.*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 690, + "event": "path", + "message": "Condition \"use_syslog\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 693, + "event": "printf_function", + "message": "Calling \"vfprintf\" which uses a \"printf\"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + } + ] + }, + { + "checker": "NEGATIVE_RETURNS", + "cwe": 687, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 26, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 308, + "event": "path", + "message": "Condition \"resized\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 312, + "event": "path", + "message": "Condition \"NULL != (void const *)output\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 312, + "event": "path", + "message": "Condition \"NULL != (void const *)output\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 313, + "event": "path", + "message": "Condition \"0 > h_queue.count - max_rows + 1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 313, + "event": "path", + "message": "Condition \"((0 > h_queue.count - max_rows + 1) ? 0 : (h_queue.count - max_rows + 1)) < output_scroll\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 313, + "event": "path", + "message": "Condition \"0 > h_queue.count - max_rows + 1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 318, + "event": "path", + "message": "Condition \"i < h_queue.count - output_scroll\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 319, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 318, + "event": "path", + "message": "Condition \"i < h_queue.count - output_scroll\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 319, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 318, + "event": "path", + "message": "Condition \"i < h_queue.count - output_scroll\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 324, + "event": "path", + "message": "Condition \"status_hidden\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 327, + "event": "path", + "message": "Condition \"!input\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 327, + "event": "path", + "message": "Condition \"rendered\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 327, + "event": "path", + "message": "Condition \"(elapsed_time = current_time - start_time) < monitor_interval\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 333, + "event": "path", + "message": "Condition \"NULL != (void const *)status\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 333, + "event": "path", + "message": "Condition \"NULL != (void const *)status\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 333, + "event": "var_tested_neg", + "message": "Assigning: \"monitor_x\" = a negative value.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 335, + "event": "path", + "message": "Condition \"256 < monitor_x\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 335, + "event": "assign", + "message": "Assigning: \"max_cols\" = \"(256 < monitor_x) ? 256 : monitor_x\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 342, + "event": "path", + "message": "Condition \"_rc >= 4096 /* (int)sizeof (path) */\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 342, + "event": "path", + "message": "Condition \"({...; _rc;})\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 345, + "event": "path", + "message": "Condition \"monitor_fp\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 350, + "event": "path", + "message": "Condition \"bytes >= 1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 353, + "event": "path", + "message": "Condition \"jso\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 360, + "event": "path", + "message": "Condition \"jso\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 394, + "event": "negative_returns", + "message": "\"max_cols\" is passed to a parameter that cannot be negative. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 451, + "event": "invalid_type", + "message": "Field width argument \"width[p_index]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 452, + "event": "invalid_type", + "message": "Field width argument \"width[p_state]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 453, + "event": "invalid_type", + "message": "Field width argument \"width[p_hits]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 454, + "event": "invalid_type", + "message": "Field width argument \"width[p_min]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 455, + "event": "invalid_type", + "message": "Field width argument \"width[p_avg]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 456, + "event": "invalid_type", + "message": "Field width argument \"width[p_max]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 469, + "event": "invalid_type", + "message": "Field width argument \"width[p_index]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 471, + "event": "invalid_type", + "message": "Field width argument \"width[p_state]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 473, + "event": "invalid_type", + "message": "Field width argument \"width[p_hits]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 475, + "event": "invalid_type", + "message": "Field width argument \"width[p_min]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 477, + "event": "invalid_type", + "message": "Field width argument \"width[p_avg]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 686, + "function": "monitor_render", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", + "line": 479, + "event": "invalid_type", + "message": "Field width argument \"width[p_max]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "BAD_SHIFT", + "function": "init_backlog", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 3, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 50, + "event": "assignment", + "message": "Assigning: \"order\" = \"0\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 51, + "event": "path", + "message": "Condition \"!fnum_max\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 53, + "event": "path", + "message": "Condition \"fnum_max >> order\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 54, + "event": "negative_shift", + "message": "In expression \"1 << order - 1\", shifting by a negative amount has undefined behavior. The shift amount, \"order - 1\", is -1.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "BAD_SHIFT", + "function": "init_backlog", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 5, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 50, + "event": "assignment", + "message": "Assigning: \"order\" = \"0\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 51, + "event": "path", + "message": "Condition \"!fnum_max\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 53, + "event": "path", + "message": "Condition \"fnum_max >> order\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 54, + "event": "path", + "message": "Condition \"fnum_max == (1 << order - 1)\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 54, + "event": "decr", + "message": "Decrementing \"order\". The value of \"order\" is now -1.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 55, + "event": "negative_shift", + "message": "In expression \"1 << order\", shifting by a negative amount has undefined behavior. The shift amount, \"order\", is -1.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 685, + "function": "switchfile_handler", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "line": 270, + "event": "extra_argument", + "message": "This argument was not used by the format string: \"sig\".", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 690, + "event": "path", + "message": "Condition \"use_syslog\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 693, + "event": "printf_function", + "message": "Calling \"vfprintf\" which uses a \"printf\"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + } + ] + }, + { + "checker": "TAINTED_SCALAR", + "cwe": 20, + "function": "reader_thread", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 8, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 298, + "event": "path", + "message": "Condition \"__cpu / 8 < 128UL /* sizeof (cpu_set_t) */\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 299, + "event": "path", + "message": "Condition \"sched_setaffinity(0, 128UL /* sizeof (cpu_mask) */, &cpu_mask) < 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 315, + "event": "path", + "message": "Condition \"rc < 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 316, + "event": "path", + "message": "Condition \"*__errno_location() == 4\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 317, + "event": "path", + "message": "Condition \"switch_file[cpu]\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 319, + "event": "path", + "message": "Condition \"switch_oldoutfile(cpu, &scb) < 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 323, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 330, + "event": "tainted_argument", + "message": "Calling function \"read\" taints argument \"status[cpu].info\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 331, + "event": "tainted_data", + "message": "Passing tainted expression \"status[cpu].info.cpu\" to \"process_subbufs\", which uses it as an offset.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 239, + "event": "var_assign_parm", + "message": "Assigning: \"cpu\" = \"info->cpu\", which taints \"cpu\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 248, + "event": "path", + "message": "Condition \"i < end_subbuf\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 250, + "event": "data_index", + "message": "Using tainted expression \"cpu\" as an index to array \"relay_buffer\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 331, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "TAINTED_SCALAR", + "cwe": 606, + "function": "reader_thread", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 8, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 298, + "event": "path", + "message": "Condition \"__cpu / 8 < 128UL /* sizeof (cpu_set_t) */\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 299, + "event": "path", + "message": "Condition \"sched_setaffinity(0, 128UL /* sizeof (cpu_mask) */, &cpu_mask) < 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 315, + "event": "path", + "message": "Condition \"rc < 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 316, + "event": "path", + "message": "Condition \"*__errno_location() == 4\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 317, + "event": "path", + "message": "Condition \"switch_file[cpu]\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 319, + "event": "path", + "message": "Condition \"switch_oldoutfile(cpu, &scb) < 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 323, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 330, + "event": "tainted_argument", + "message": "Calling function \"read\" taints argument \"status[cpu].info\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 331, + "event": "tainted_data", + "message": "Passing tainted expression \"status[cpu].info.produced\" to \"process_subbufs\", which uses it as a loop boundary.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 244, + "event": "var_assign_alias", + "message": "Assigning: \"subbufs_ready\" = \"info->produced - info->consumed\", which taints \"subbufs_ready\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 246, + "event": "var_assign_alias", + "message": "Assigning: \"end_subbuf\" = \"start_subbuf + subbufs_ready\", which taints \"end_subbuf\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 248, + "event": "loop_bound_upper", + "message": "Using tainted expression \"end_subbuf\" as a loop boundary.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 331, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "PRINTF_ARGS", + "cwe": 685, + "function": "switchfile_handler", + "language": "c/c++", + "tool": "coverity", "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 477, - "event": "invalid_type", - "message": "Field width argument \"width[p_avg]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 686, - "function": "monitor_render", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", + "line": 380, + "event": "extra_argument", + "message": "This argument was not used by the format string: \"sig\".", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 690, + "event": "path", + "message": "Condition \"use_syslog\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/common.c", + "line": 693, + "event": "printf_function", + "message": "Calling \"vfprintf\" which uses a \"printf\"-style format string. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "main", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 13, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 47, + "event": "path", + "message": "Condition \"buf == NULL\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 53, + "event": "path", + "message": "Switch case value \"118\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 56, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 63, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 53, + "event": "path", + "message": "Switch case value \"111\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 59, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 63, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 65, + "event": "path", + "message": "Condition \"optind == argc\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 71, + "event": "path", + "message": "Condition \"!fp[i]\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 75, + "event": "check_return", + "message": "\"fread(void * restrict, size_t, size_t, FILE * restrict)\" returns the number of bytes read, but it is ignored.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 75, + "event": "path", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 76, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 80, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 71, + "event": "path", + "message": "Condition \"!fp[i]\", taking true branch.", + "verbosity_level": 2 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "main", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 72, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 47, + "event": "path", + "message": "Condition \"buf == NULL\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 53, + "event": "path", + "message": "Switch case value \"118\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 56, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 63, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 53, + "event": "path", + "message": "Switch case value \"111\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 59, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 63, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 65, + "event": "path", + "message": "Condition \"optind == argc\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 71, + "event": "path", + "message": "Condition \"!fp[i]\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 75, + "event": "path", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 76, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 80, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 71, + "event": "path", + "message": "Condition \"!fp[i]\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 75, + "event": "path", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 76, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 80, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 83, + "event": "path", + "message": "Condition \"!outfile_name\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 84, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 104, + "event": "path", + "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 105, + "event": "path", + "message": "Condition \"verbose\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 107, + "event": "path", + "message": "Condition \"len > bufsize\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 109, + "event": "path", + "message": "Condition \"verbose\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 111, + "event": "path", + "message": "Condition \"buf == NULL\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 116, + "event": "path", + "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 120, + "event": "path", + "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 126, + "event": "path", + "message": "Condition \"min\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 126, + "event": "path", + "message": "Condition \"++count != min\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 132, + "event": "path", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 133, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 136, + "event": "path", + "message": "Condition \"min\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 104, + "event": "path", + "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 105, + "event": "path", + "message": "Condition \"verbose\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 107, + "event": "path", + "message": "Condition \"len > bufsize\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 109, + "event": "path", + "message": "Condition \"verbose\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 111, + "event": "path", + "message": "Condition \"buf == NULL\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 116, + "event": "path", + "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 120, + "event": "path", + "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 126, + "event": "path", + "message": "Condition \"min\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 126, + "event": "path", + "message": "Condition \"++count != min\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 132, + "event": "path", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 133, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 136, + "event": "path", + "message": "Condition \"min\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 104, + "event": "check_return", + "message": "\"fread(void * restrict, size_t, size_t, FILE * restrict)\" returns the number of bytes read, but it is ignored.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 104, + "event": "path", + "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 105, + "event": "path", + "message": "Condition \"verbose\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 107, + "event": "path", + "message": "Condition \"len > bufsize\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 109, + "event": "path", + "message": "Condition \"verbose\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 111, + "event": "path", + "message": "Condition \"buf == NULL\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 116, + "event": "path", + "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 120, + "event": "path", + "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 126, + "event": "path", + "message": "Condition \"min\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 132, + "event": "path", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 133, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 136, + "event": "path", + "message": "Condition \"min\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 138, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 139, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 138, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 139, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 138, + "event": "path", + "message": "Condition \"i < ncpus\", taking false branch.", + "verbosity_level": 2 + } + ] + }, + { + "checker": "TAINTED_SCALAR", + "cwe": 770, + "function": "main", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 43, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 47, + "event": "path", + "message": "Condition \"buf == NULL\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 53, + "event": "path", + "message": "Switch case value \"118\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 56, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 63, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 53, + "event": "path", + "message": "Switch case value \"111\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 59, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 63, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 65, + "event": "path", + "message": "Condition \"optind == argc\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 71, + "event": "path", + "message": "Condition \"!fp[i]\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 75, + "event": "path", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 76, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 80, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 71, + "event": "path", + "message": "Condition \"!fp[i]\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 75, + "event": "path", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 76, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 80, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 83, + "event": "path", + "message": "Condition \"!outfile_name\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 84, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"num[i]\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"num[i] < min\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 104, + "event": "tainted_argument", + "message": "Calling function \"fread\" taints argument \"len\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 104, + "event": "path", + "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 105, + "event": "path", + "message": "Condition \"verbose\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 107, + "event": "path", + "message": "Condition \"len > bufsize\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 107, + "event": "lower_bounds", + "message": "Checking lower bounds of signed scalar \"len\" by taking the true branch of \"len > bufsize\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 108, + "event": "var_assign_var", + "message": "Assigning: \"bufsize\" = \"len\". Both are now tainted.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 109, + "event": "path", + "message": "Condition \"verbose\", taking true branch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/monitor.c", - "line": 479, - "event": "invalid_type", - "message": "Field width argument \"width[p_max]\" to format specifier \"%*s\" was expected to have type \"int\" but has type \"unsigned long\".", + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 110, + "event": "tainted_data", + "message": "Passing tainted expression \"bufsize\" to \"realloc\", which uses it as an allocation size.", "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 110, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 } ] }, { - "checker": "BAD_SHIFT", - "function": "init_backlog", + "checker": "TAINTED_SCALAR", + "cwe": 20, + "function": "main", "language": "c/c++", "tool": "coverity", - "key_event_idx": 3, + "key_event_idx": 122, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", - "line": 50, - "event": "assignment", - "message": "Assigning: \"order\" = \"0\".", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 47, + "event": "path", + "message": "Condition \"buf == NULL\", taking false branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", - "line": 51, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, "event": "path", - "message": "Condition \"!fnum_max\", taking false branch.", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", "line": 53, "event": "path", - "message": "Condition \"fnum_max >> order\", taking false branch.", + "message": "Switch case value \"118\".", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", - "line": 54, - "event": "negative_shift", - "message": "In expression \"1 << order - 1\", shifting by a negative amount has undefined behavior. The shift amount, \"order - 1\", is -1.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "BAD_SHIFT", - "function": "init_backlog", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 5, - "events": [ + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 56, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", - "line": 50, - "event": "assignment", - "message": "Assigning: \"order\" = \"0\".", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 63, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", - "line": 51, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, "event": "path", - "message": "Condition \"!fnum_max\", taking false branch.", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", "line": 53, "event": "path", - "message": "Condition \"fnum_max >> order\", taking false branch.", + "message": "Switch case value \"111\".", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 59, + "event": "path", + "message": "Breaking from switch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 63, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 52, + "event": "path", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 65, + "event": "path", + "message": "Condition \"optind == argc\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 71, + "event": "path", + "message": "Condition \"!fp[i]\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 75, + "event": "path", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 76, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 80, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 71, + "event": "path", + "message": "Condition \"!fp[i]\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 75, + "event": "path", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 76, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 80, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 69, + "event": "path", + "message": "Condition \"optind < argc\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 83, + "event": "path", + "message": "Condition \"!outfile_name\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 84, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"min == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", - "line": 54, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, "event": "path", - "message": "Condition \"fnum_max == (1 << order - 1)\", taking true branch.", + "message": "Condition \"num[i]\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", - "line": 54, - "event": "decr", - "message": "Decrementing \"order\". The value of \"order\" is now -1.", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, + "event": "path", + "message": "Condition \"num[i] < min\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", - "line": 55, - "event": "negative_shift", - "message": "In expression \"1 << order\", shifting by a negative amount has undefined behavior. The shift amount, \"order\", is -1.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 685, - "function": "switchfile_handler", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay.c", - "line": 270, - "event": "extra_argument", - "message": "This argument was not used by the format string: \"sig\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "TAINTED_SCALAR", - "cwe": 20, - "function": "reader_thread", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 8, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 298, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, "event": "path", - "message": "Condition \"__cpu / 8 < 128UL /* sizeof (cpu_set_t) */\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 299, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, "event": "path", - "message": "Condition \"sched_setaffinity(0, 128UL /* sizeof (cpu_mask) */, &cpu_mask) < 0\", taking true branch.", + "message": "Condition \"i < ncpus\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 315, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 104, "event": "path", - "message": "Condition \"rc < 0\", taking true branch.", + "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 316, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 105, "event": "path", - "message": "Condition \"*__errno_location() == 4\", taking true branch.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 317, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 107, "event": "path", - "message": "Condition \"switch_file[cpu]\", taking true branch.", + "message": "Condition \"len > bufsize\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 319, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 109, "event": "path", - "message": "Condition \"switch_oldoutfile(cpu, &scb) < 0\", taking false branch.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 323, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 111, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"buf == NULL\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 330, - "event": "tainted_argument", - "message": "Calling function \"read\" taints argument \"status[cpu].info\". [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 116, + "event": "path", + "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 331, - "event": "tainted_data", - "message": "Passing tainted expression \"status[cpu].info.cpu\" to \"process_subbufs\", which uses it as an offset.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 120, + "event": "path", + "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 331, - "event": "remediation", - "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", - "verbosity_level": 1 - } - ] - }, - { - "checker": "TAINTED_SCALAR", - "cwe": 606, - "function": "reader_thread", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 8, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 298, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 126, "event": "path", - "message": "Condition \"__cpu / 8 < 128UL /* sizeof (cpu_set_t) */\", taking true branch.", + "message": "Condition \"min\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 299, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 126, "event": "path", - "message": "Condition \"sched_setaffinity(0, 128UL /* sizeof (cpu_mask) */, &cpu_mask) < 0\", taking true branch.", + "message": "Condition \"++count != min\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 315, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 132, "event": "path", - "message": "Condition \"rc < 0\", taking true branch.", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 316, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 133, "event": "path", - "message": "Condition \"*__errno_location() == 4\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 317, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 136, "event": "path", - "message": "Condition \"switch_file[cpu]\", taking true branch.", + "message": "Condition \"min\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 319, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, "event": "path", - "message": "Condition \"switch_oldoutfile(cpu, &scb) < 0\", taking false branch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 323, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 98, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 330, - "event": "tainted_argument", - "message": "Calling function \"read\" taints argument \"status[cpu].info\". [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 102, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 331, - "event": "tainted_data", - "message": "Passing tainted expression \"status[cpu].info.produced\" to \"process_subbufs\", which uses it as a loop boundary.", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking true branch.", + "verbosity_level": 2 }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 331, - "event": "remediation", - "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", - "verbosity_level": 1 - } - ] - }, - { - "checker": "PRINTF_ARGS", - "cwe": 685, - "function": "switchfile_handler", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/relay_old.c", - "line": 380, - "event": "extra_argument", - "message": "This argument was not used by the format string: \"sig\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "CHECKED_RETURN", - "cwe": 252, - "function": "main", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 13, - "events": [ { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 47, + "line": 98, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 102, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 53, + "line": 97, "event": "path", - "message": "Switch case value \"118\".", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 56, + "line": 98, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 63, + "line": 102, "event": "path", "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 97, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 53, + "line": 98, "event": "path", - "message": "Switch case value \"111\".", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 59, + "line": 102, "event": "path", - "message": "Breaking from switch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 63, + "line": 97, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 98, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking false branch.", + "message": "Condition \"min == 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 65, + "line": 98, "event": "path", - "message": "Condition \"optind == argc\", taking false branch.", + "message": "Condition \"num[i]\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "line": 98, "event": "path", - "message": "Condition \"optind < argc\", taking true branch.", + "message": "Condition \"num[i] < min\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 71, + "line": 102, "event": "path", - "message": "Condition \"!fp[i]\", taking false branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 75, - "event": "check_return", - "message": "\"fread(void * restrict, size_t, size_t, FILE * restrict)\" returns the number of bytes read, but it is ignored.", - "verbosity_level": 0 + "line": 97, + "event": "path", + "message": "Condition \"i < ncpus\", taking false branch.", + "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 75, + "line": 104, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 76, + "line": 105, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 80, + "line": 107, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"len > bufsize\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "line": 109, "event": "path", - "message": "Condition \"optind < argc\", taking true branch.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 71, + "line": 111, "event": "path", - "message": "Condition \"!fp[i]\", taking true branch.", + "message": "Condition \"buf == NULL\", taking false branch.", "verbosity_level": 2 - } - ] - }, - { - "checker": "CHECKED_RETURN", - "cwe": 252, - "function": "main", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 72, - "events": [ + }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 47, + "line": 116, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 120, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 53, + "line": 126, "event": "path", - "message": "Switch case value \"118\".", + "message": "Condition \"min\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 56, + "line": 126, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"++count != min\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 63, + "line": 132, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 133, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 53, + "line": 136, "event": "path", - "message": "Switch case value \"111\".", + "message": "Condition \"min\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 59, + "line": 97, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 63, + "line": 98, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 102, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking false branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 65, + "line": 97, "event": "path", - "message": "Condition \"optind == argc\", taking false branch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "line": 98, "event": "path", - "message": "Condition \"optind < argc\", taking true branch.", + "message": "Condition \"min == 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 71, + "line": 98, "event": "path", - "message": "Condition \"!fp[i]\", taking false branch.", + "message": "Condition \"num[i]\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 75, + "line": 102, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 76, + "line": 97, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"i < ncpus\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 80, + "line": 104, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "line": 105, "event": "path", - "message": "Condition \"optind < argc\", taking true branch.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 71, + "line": 107, "event": "path", - "message": "Condition \"!fp[i]\", taking false branch.", + "message": "Condition \"len > bufsize\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 75, + "line": 109, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 76, + "line": 111, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"buf == NULL\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 80, + "line": 116, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "line": 120, "event": "path", - "message": "Condition \"optind < argc\", taking false branch.", + "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 83, + "line": 126, "event": "path", - "message": "Condition \"!outfile_name\", taking true branch.", + "message": "Condition \"min\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 84, + "line": 126, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"++count != min\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "line": 132, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "line": 133, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "line": 136, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"min\", taking true branch.", "verbosity_level": 2 }, { @@ -6116,14 +8782,7 @@ "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", "line": 132, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 133, - "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking false branch.", "verbosity_level": 2 }, { @@ -6158,549 +8817,556 @@ "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", "line": 97, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"i < ncpus\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, - "event": "path", - "message": "Condition \"min == 0\", taking true branch.", - "verbosity_level": 2 + "line": 104, + "event": "tainted_argument", + "message": "Calling function \"fread\" taints argument \"len\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "line": 104, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "line": 105, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "line": 107, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"len > bufsize\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "line": 107, + "event": "upper_bounds", + "message": "Checking upper bounds of signed scalar \"len\" by taking the false branch of \"len > bufsize\".", + "verbosity_level": 1 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "line": 116, + "event": "tainted_data", + "message": "Passing tainted expression \"len\" to \"fread\", which uses it as an offset. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 116, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "main", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 80, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "line": 47, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"buf == NULL\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "line": 52, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "line": 53, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Switch case value \"118\".", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "line": 56, "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "message": "Breaking from switch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, + "line": 63, "event": "path", - "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 105, + "line": 52, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, + "line": 53, "event": "path", - "message": "Condition \"len > bufsize\", taking true branch.", + "message": "Switch case value \"111\".", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 109, + "line": 59, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Breaking from switch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 111, + "line": 63, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, + "line": 52, "event": "path", - "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 120, + "line": 65, "event": "path", - "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", + "message": "Condition \"optind == argc\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "line": 69, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Condition \"optind < argc\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "line": 71, "event": "path", - "message": "Condition \"++count != min\", taking false branch.", + "message": "Condition \"!fp[i]\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 132, + "line": 75, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 133, + "line": 76, "event": "path", "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 136, + "line": 80, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "line": 69, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"optind < argc\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "line": 71, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"!fp[i]\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "line": 75, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "line": 76, "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, - "event": "check_return", - "message": "\"fread(void * restrict, size_t, size_t, FILE * restrict)\" returns the number of bytes read, but it is ignored.", - "verbosity_level": 0 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, + "line": 80, "event": "path", - "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 105, + "line": 69, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"optind < argc\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, + "line": 83, "event": "path", - "message": "Condition \"len > bufsize\", taking true branch.", + "message": "Condition \"!outfile_name\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 109, + "line": 84, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 111, + "line": 97, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, + "line": 98, "event": "path", - "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 120, + "line": 102, "event": "path", - "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "line": 97, "event": "path", - "message": "Condition \"min\", taking false branch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 132, + "line": 98, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 133, + "line": 102, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 136, + "line": 97, "event": "path", - "message": "Condition \"min\", taking false branch.", + "message": "Condition \"i < ncpus\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 138, + "line": 104, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 139, + "line": 105, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 138, + "line": 107, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"len > bufsize\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 139, + "line": 109, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 138, + "line": 111, "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "message": "Condition \"buf == NULL\", taking false branch.", "verbosity_level": 2 - } - ] - }, - { - "checker": "TAINTED_SCALAR", - "cwe": 770, - "function": "main", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 43, - "events": [ + }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 47, + "line": 116, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 120, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 53, + "line": 126, "event": "path", - "message": "Switch case value \"118\".", + "message": "Condition \"min\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 56, + "line": 126, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"++count != min\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 63, + "line": 132, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 133, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 53, + "line": 136, "event": "path", - "message": "Switch case value \"111\".", + "message": "Condition \"min\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 59, + "line": 97, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 63, + "line": 98, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 102, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking false branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 65, + "line": 97, "event": "path", - "message": "Condition \"optind == argc\", taking false branch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "line": 98, "event": "path", - "message": "Condition \"optind < argc\", taking true branch.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 71, + "line": 102, "event": "path", - "message": "Condition \"!fp[i]\", taking false branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 75, + "line": 97, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 76, + "line": 98, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 80, + "line": 102, "event": "path", "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "line": 97, "event": "path", - "message": "Condition \"optind < argc\", taking true branch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 71, + "line": 98, "event": "path", - "message": "Condition \"!fp[i]\", taking false branch.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 75, + "line": 102, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 76, + "line": 97, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"i < ncpus\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 80, + "line": 104, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "line": 105, "event": "path", - "message": "Condition \"optind < argc\", taking false branch.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 83, + "line": 107, "event": "path", - "message": "Condition \"!outfile_name\", taking true branch.", + "message": "Condition \"len > bufsize\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 84, + "line": 109, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "line": 111, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"buf == NULL\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "line": 116, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "line": 120, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "line": 126, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"min\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "line": 126, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"++count != min\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "line": 132, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "line": 133, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "line": 136, "event": "path", - "message": "Condition \"min == 0\", taking false branch.", + "message": "Condition \"min\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "line": 97, "event": "path", - "message": "Condition \"num[i]\", taking true branch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", "line": 98, "event": "path", - "message": "Condition \"num[i] < min\", taking true branch.", + "message": "Condition \"min == 0\", taking true branch.", "verbosity_level": 2 }, { @@ -6717,13 +9383,6 @@ "message": "Condition \"i < ncpus\", taking false branch.", "verbosity_level": 2 }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, - "event": "tainted_argument", - "message": "Calling function \"fread\" taints argument \"len\". [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 1 - }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", "line": 104, @@ -6745,20 +9404,6 @@ "message": "Condition \"len > bufsize\", taking true branch.", "verbosity_level": 2 }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, - "event": "lower_bounds", - "message": "Checking lower bounds of signed scalar \"len\" by taking the true branch of \"len > bufsize\".", - "verbosity_level": 1 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 108, - "event": "var_assign_var", - "message": "Assigning: \"bufsize\" = \"len\". Both are now tainted.", - "verbosity_level": 1 - }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", "line": 109, @@ -6768,3271 +9413,4150 @@ }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 110, - "event": "tainted_data", - "message": "Passing tainted expression \"bufsize\" to \"realloc\", which uses it as an allocation size.", - "verbosity_level": 0 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 110, - "event": "remediation", - "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", - "verbosity_level": 1 - } - ] - }, - { - "checker": "TAINTED_SCALAR", - "cwe": 20, - "function": "main", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 122, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 47, + "line": 111, "event": "path", "message": "Condition \"buf == NULL\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 116, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 53, + "line": 120, "event": "path", - "message": "Switch case value \"118\".", + "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 56, + "line": 126, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"min\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 63, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "line": 132, + "event": "check_return", + "message": "\"fread(void * restrict, size_t, size_t, FILE * restrict)\" returns the number of bytes read, but it is ignored.", + "verbosity_level": 0 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 132, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 53, + "line": 133, "event": "path", - "message": "Switch case value \"111\".", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 59, + "line": 136, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"min\", taking false branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 63, + "line": 138, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "line": 139, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking false branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 65, + "line": 138, "event": "path", - "message": "Condition \"optind == argc\", taking false branch.", + "message": "Condition \"i < ncpus\", taking true branch.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "line": 139, "event": "path", - "message": "Condition \"optind < argc\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 71, + "line": 138, "event": "path", - "message": "Condition \"!fp[i]\", taking false branch.", + "message": "Condition \"i < ncpus\", taking false branch.", "verbosity_level": 2 - }, + } + ] + }, + { + "checker": "RESOURCE_LEAK", + "cwe": 404, + "imp": 1, + "function": "send_relocation_modules", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 24, + "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 75, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 700, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "message": "Condition \"r == 1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 76, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 700, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"r == 2\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 80, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 703, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"i < globbuf.gl_pathc\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 719, "event": "path", - "message": "Condition \"optind < argc\", taking true branch.", + "message": "Condition \"!section_name\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 71, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 719, "event": "path", - "message": "Condition \"!fp[i]\", taking false branch.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 75, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 703, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "message": "Condition \"i < globbuf.gl_pathc\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 76, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 719, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"!section_name\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 80, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 719, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Continuing loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 703, "event": "path", - "message": "Condition \"optind < argc\", taking false branch.", + "message": "Condition \"i < globbuf.gl_pathc\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 83, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 719, "event": "path", - "message": "Condition \"!outfile_name\", taking true branch.", + "message": "Condition \"!section_name\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 84, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 722, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"!strcmp(section_name, \".\")\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 723, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"!strcmp(section_name, \"..\")\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 726, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"!module_name\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 729, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"!module_name\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 732, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"!module_name\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 736, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"!module_name_end\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 738, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"fopen\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, - "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 738, + "event": "var_assign", + "message": "Assigning: \"secfile\" = storage returned from \"fopen(module_section_file, \"r\")\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 739, "event": "path", - "message": "Condition \"min == 0\", taking false branch.", + "message": "Condition \"!secfile\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, - "event": "path", - "message": "Condition \"num[i]\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 741, + "event": "noescape", + "message": "Resource \"secfile\" is not freed or pointed-to in \"fscanf\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 741, "event": "path", - "message": "Condition \"num[i] < min\", taking true branch.", + "message": "Condition \"1 == fscanf(secfile, \"0x%llx\", §ion_address)\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 750, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"strstr(section_name, \"init.\") != NULL\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 761, "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "message": "Condition \"strcmp(section_name, \".gnu.linkonce.this_module\")\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, - "event": "path", - "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 765, + "event": "noescape", + "message": "Resource \"secfile\" is not freed or pointed-to in \"fileno\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 105, - "event": "path", - "message": "Condition \"verbose\", taking true branch.", - "verbosity_level": 2 - }, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", + "line": 774, + "event": "leaked_storage", + "message": "Variable \"secfile\" going out of scope leaks the storage it points to.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "BAD_SIZEOF", + "cwe": 467, + "function": "insert_module", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, - "event": "path", - "message": "Condition \"len > bufsize\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 192, + "event": "bad_sizeof", + "message": "Taking the size of \"module_realpath\", which is the address of an object, is suspicious.", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 109, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 192, + "event": "remediation", + "message": "Did you intend the size of \"module_realpath\" itself?", + "verbosity_level": 1 + } + ] + }, + { + "checker": "TOCTOU", + "cwe": 367, + "function": "mountfs", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 8, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 319, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"statfs(\"/sys/kernel/debug\", &st) == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 111, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 319, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Condition \"(int)st.f_type == 1684170528 /* (int)1684170528 */\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 326, "event": "path", - "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "message": "Condition \"rc == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 120, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 326, "event": "path", - "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", + "message": "Condition \"(sb.st_mode & 61440) == 16384\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 329, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Condition \"rc == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 334, "event": "path", - "message": "Condition \"++count != min\", taking true branch.", + "message": "Condition \"*__errno_location() != 19\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 132, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 343, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Condition \"statfs(\"/mnt/relay\", &st) == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 133, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 343, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"(int)st.f_type == -256595583 /* (int)4038371713U */\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 136, - "event": "path", - "message": "Condition \"min\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 348, + "event": "fs_check_call", + "message": "Calling function \"stat\" to perform check on \"\"/mnt/relay\"\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 349, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"rc == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 353, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"rc < 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 367, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"setuid(0) < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 371, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"setgid(0) < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 378, + "event": "toctou", + "message": "Calling function \"mkdir\" that uses \"\"/mnt/relay\"\" after a check function. This can cause a time-of-check, time-of-use race condition.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "TAINTED_SCALAR", + "cwe": 20, + "function": "assert_stap_module_permissions", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 6, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 770, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"check_signature_rc == -2\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 774, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"getuid() == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, - "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 776, + "event": "tainted_return_value", + "message": "Function \"getenv\" returns tainted data.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, - "event": "path", - "message": "Condition \"min == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 776, + "event": "var_assign", + "message": "Assigning: \"env_id\" = \"getenv(\"SYSTEMTAP_REAL_UID\")\", which taints \"env_id\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 777, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"env_id\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, - "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 777, + "event": "tainted_data_transitive", + "message": "Call to function \"atoi\" with tainted argument \"*env_id\" returns tainted data. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, - "event": "path", - "message": "Condition \"min == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 777, + "event": "tainted_data", + "message": "Passing tainted expression \"atoi(env_id)\" to \"setreuid\", which cannot accept tainted data.", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 777, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "TAINTED_SCALAR", + "cwe": 20, + "function": "assert_stap_module_permissions", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 10, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 770, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"check_signature_rc == -2\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 774, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"getuid() == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 777, "event": "path", - "message": "Condition \"min == 0\", taking false branch.", + "message": "Condition \"env_id\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 777, "event": "path", - "message": "Condition \"num[i]\", taking true branch.", + "message": "Condition \"setreuid(atoi(env_id), -1)\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 778, "event": "path", - "message": "Condition \"num[i] < min\", taking false branch.", + "message": "Condition \"suppress_warnings\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 778, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Breaking from loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, - "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 782, + "event": "tainted_return_value", + "message": "Function \"getenv\" returns tainted data.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, - "event": "path", - "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 782, + "event": "var_assign", + "message": "Assigning: \"env_id\" = \"getenv(\"SYSTEMTAP_REAL_GID\")\", which taints \"env_id\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 105, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 783, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"env_id\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 783, + "event": "tainted_data_transitive", + "message": "Call to function \"atoi\" with tainted argument \"*env_id\" returns tainted data. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 783, + "event": "tainted_data", + "message": "Passing tainted expression \"atoi(env_id)\" to \"setregid\", which cannot accept tainted data.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", + "line": 783, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "UNINIT_CTOR", + "cwe": 457, + "function": "functioncall::functioncall()", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 1, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staptree.h", + "line": 467, + "event": "member_decl", + "message": "Class member declaration for \"synthetic\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/staptree.cxx", + "line": 79, + "event": "uninit_member", + "message": "Non-static class member \"synthetic\" is not initialized in this constructor nor in any functions that it calls.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "netfilter_builder::build(systemtap_session &, probe *, probe_point *, std::map, std::allocator > > const &, std::vector > &)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 2, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-netfilter.cxx", + "line": 521, "event": "path", - "message": "Condition \"len > bufsize\", taking true branch.", + "message": "Condition \"!derived_probe_builder::get_param(parameters, interned_string(TOK_HOOK), hook)\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 109, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-netfilter.cxx", + "line": 524, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"!derived_probe_builder::get_param(parameters, interned_string(TOK_PF), pf)\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-netfilter.cxx", + "line": 527, + "event": "check_return", + "message": "Calling \"get_param\" without checking return value (as is done elsewhere 29 out of 32 times).", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-itrace.cxx", "line": 111, - "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", - "verbosity_level": 2 + "event": "example_assign", + "message": "Example 1: Assigning: \"has_path\" = return value from \"derived_probe_builder::get_param(parameters, interned_string(TOK_PROCESS), path)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, - "event": "path", - "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-itrace.cxx", + "line": 114, + "event": "example_checked", + "message": "Example 1 (cont.): \"has_path\" has its value checked in \"has_path\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 120, - "event": "path", - "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-mark.cxx", + "line": 650, + "event": "example_assign", + "message": "Example 2: Assigning: \"has_mark_str\" = return value from \"derived_probe_builder::get_param(parameters, interned_string(TOK_MARK), mark_str_val)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-mark.cxx", + "line": 653, + "event": "example_checked", + "message": "Example 2 (cont.): \"has_mark_str\" has its value checked in \"has_mark_str\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-method.cxx", + "line": 96, + "event": "example_assign", + "message": "Example 3: Assigning: \"has_method_str\" = return value from \"derived_probe_builder::get_param(parameters, interned_string(TOK_METHOD), method_str_val)\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-method.cxx", + "line": 149, + "event": "example_checked", + "message": "Example 3 (cont.): \"has_method_str\" has its value checked in \"has_method_str\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-netfilter.cxx", + "line": 524, + "event": "example_checked", + "message": "Example 4: \"derived_probe_builder::get_param(parameters, interned_string(TOK_PF), pf)\" has its value checked in \"derived_probe_builder::get_param(parameters, interned_string(TOK_PF), pf)\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-perfmon.cxx", + "line": 325, + "event": "example_assign", + "message": "Example 5: Assigning: \"has_counter\" = return value from \"derived_probe_builder::get_param(parameters, interned_string(TOK_COUNTER), var)\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-perfmon.cxx", + "line": 328, + "event": "example_checked", + "message": "Example 5 (cont.): \"has_counter\" has its value checked in \"has_counter\".", + "verbosity_level": 1 + } + ] + }, + { + "checker": "RESOURCE_LEAK", + "cwe": 404, + "imp": 1, + "function": "register_tapset_python(systemtap_session &)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 3, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-python.cxx", + "line": 713, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-python.cxx", + "line": 713, + "event": "var_assign", + "message": "Assigning: \"builder\" = storage returned from \"new python_builder\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-python.cxx", + "line": 725, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Condition \"i < roots.size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-python.cxx", + "line": 740, + "event": "leaked_storage", + "message": "Variable \"builder\" going out of scope leaks the storage it points to.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "RESOURCE_LEAK", + "cwe": 404, + "imp": 1, + "function": "utrace_var_expanding_visitor::visit_target_symbol_arg(target_symbol *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 6, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 487, "event": "path", - "message": "Condition \"++count != min\", taking true branch.", + "message": "Condition \"this->flags != UDPF_SYSCALL\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 132, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 490, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Condition \"e->name == \"$$parms\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 133, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 497, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"i < 6\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 136, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 499, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Condition \"i > 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, - "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 502, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, - "event": "path", - "message": "Condition \"min == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 502, + "event": "var_assign", + "message": "Assigning: \"tsym\" = storage returned from \"new target_symbol\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 517, + "event": "leaked_storage", + "message": "Variable \"tsym\" going out of scope leaks the storage it points to.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "RESOURCE_LEAK", + "cwe": 404, + "imp": 1, + "function": "register_tapset_utrace(systemtap_session &)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 3, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 1347, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, - "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 1347, + "event": "var_assign", + "message": "Assigning: \"builder\" = storage returned from \"new utrace_builder\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 1354, "event": "path", - "message": "Condition \"min == 0\", taking false branch.", + "message": "Condition \"i < roots.size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, - "event": "path", - "message": "Condition \"num[i]\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", + "line": 1375, + "event": "leaked_storage", + "message": "Variable \"builder\" going out of scope leaks the storage it points to.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "UNINIT_CTOR", + "cwe": 457, + "function": "uprobe_derived_probe::uprobe_derived_probe(probe *, probe_point *, int, unsigned long, bool)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 1, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 609, + "event": "member_decl", + "message": "Class member declaration for \"build_id_vaddr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 628, + "event": "uninit_member", + "message": "Non-static class member \"build_id_vaddr\" is not initialized in this constructor nor in any functions that it calls.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "TAINTED_SCALAR", + "cwe": 606, + "function": "dwarf_query::parse_function_spec(std::__cxx11::basic_string, std::allocator > const &)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 16, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1260, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"scope_pos != 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1264, "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1270, "event": "path", - "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Condition \"src_pos == 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 105, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1281, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"line_pos == 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1292, "event": "path", - "message": "Condition \"len > bufsize\", taking true branch.", + "message": "Condition \"spec[line_pos] == '+'\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 109, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1293, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 111, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1300, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Condition \"this->lineno_type != WILDCARD\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1304, "event": "path", - "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "message": "Condition \"spec->find_first_of(\",-\", line_pos + 1) != 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 120, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1309, "event": "path", - "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", + "message": "Condition \"line_spec != std::vector, std::allocator >, std::allocator, std::allocator > > >::const_iterator(sub_specs.cend())\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1314, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Condition \"ranges.size() > 1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, - "event": "path", - "message": "Condition \"++count != min\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1317, + "event": "tainted_return_value", + "message": "Function \"lex_cast\" returns tainted data.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 132, - "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 184, + "event": "tainted_data_argument", + "message": "Calling function \"operator >>\" taints parameter \"out\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 133, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 184, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"(ss >> out)->operator bool()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 136, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 184, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Condition \"ss.eof()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, - "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 186, + "event": "return_tainted_data", + "message": "Returning tainted data \"out\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, - "event": "path", - "message": "Condition \"min == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1317, + "event": "var_assign", + "message": "Assigning: \"high\" = \"lex_cast(ranges.back())\", which taints \"high\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1318, + "event": "tainted_data", + "message": "Using tainted variable \"high\" as a loop boundary.", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1318, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "TAINTED_SCALAR", + "cwe": 606, + "function": "dwarf_query::parse_function_spec(std::__cxx11::basic_string, std::allocator > const &)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 17, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1260, "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "message": "Condition \"scope_pos != 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1264, "event": "path", - "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 105, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1270, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"src_pos == 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1281, "event": "path", - "message": "Condition \"len > bufsize\", taking true branch.", + "message": "Condition \"line_pos == 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 109, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1292, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"spec[line_pos] == '+'\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 111, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1293, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1300, "event": "path", - "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "message": "Condition \"this->lineno_type != WILDCARD\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 120, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1304, "event": "path", - "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", + "message": "Condition \"spec->find_first_of(\",-\", line_pos + 1) != 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1309, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Condition \"line_spec != std::vector, std::allocator >, std::allocator, std::allocator > > >::const_iterator(sub_specs.cend())\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1314, "event": "path", - "message": "Condition \"++count != min\", taking true branch.", + "message": "Condition \"ranges.size() > 1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 132, - "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1316, + "event": "tainted_return_value", + "message": "Function \"lex_cast\" returns tainted data.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 136, - "event": "path", - "message": "Condition \"min\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 184, + "event": "tainted_data_argument", + "message": "Calling function \"operator >>\" taints parameter \"out\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 184, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"(ss >> out)->operator bool()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 184, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"ss.eof()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 186, + "event": "return_tainted_data", + "message": "Returning tainted data \"out\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1316, + "event": "var_assign", + "message": "Assigning: \"low\" = \"lex_cast(ranges.front())\", which taints \"low\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1318, + "event": "var_assign_var", + "message": "Assigning: \"i\" = \"low\". Both are now tainted.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1318, + "event": "tainted_data", + "message": "Using tainted variable \"i\" as a loop boundary.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 1318, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "DEADCODE", + "cwe": 561, + "function": "dwarf_pretty_print::recurse_array(Dwarf_Die *, target_symbol *, print_format *, bool)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 3, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 3565, + "event": "assignment", + "message": "Assigning: \"i\" = \"0U\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 3567, + "event": "const", + "message": "At condition \"i > 0U\", the value of \"i\" must be equal to 0.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 3567, + "event": "dead_error_condition", + "message": "The condition \"i > 0U\" cannot be true.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 3568, + "event": "dead_error_line", + "message": "Execution cannot reach this statement: \"pf->raw_components.append(\"...\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "RESOURCE_LEAK", + "cwe": 404, + "imp": 1, + "function": "dwarf_var_expanding_visitor::visit_target_symbol_context(target_symbol *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 9, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 4442, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"pending_interrupts\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 4447, "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "message": "Condition \"null_die(this->scope_die)\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, - "event": "tainted_argument", - "message": "Calling function \"fread\" taints argument \"len\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 4454, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 4454, + "event": "var_assign", + "message": "Assigning: \"tsym\" = storage returned from \"new target_symbol(e)\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 4464, "event": "path", - "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Condition \"this->q.has_return\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 105, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 4464, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"e->name == \"$$return\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 4489, "event": "path", - "message": "Condition \"len > bufsize\", taking false branch.", + "message": "Condition \"i < scopes.size()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, - "event": "upper_bounds", - "message": "Checking upper bounds of signed scalar \"len\" by taking the false branch of \"len > bufsize\".", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 4491, + "event": "path", + "message": "Condition \"dwarf_tag(scopes[i]) == DW_TAG_compile_unit\", taking true branch.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, - "event": "tainted_data", - "message": "Passing tainted expression \"len\" to \"fread\", which uses it as an offset. [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 0 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 4492, + "event": "path", + "message": "Breaking from loop.", + "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, - "event": "remediation", - "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", - "verbosity_level": 1 + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 4570, + "event": "leaked_storage", + "message": "Variable \"tsym\" going out of scope leaks the storage it points to.", + "verbosity_level": 0 } ] }, { - "checker": "CHECKED_RETURN", - "cwe": 252, - "function": "main", + "checker": "TAINTED_SCALAR", + "cwe": 606, + "function": "sdt_uprobe_var_expanding_visitor::try_parse_arg_effective_addr(target_symbol *, std::__cxx11::basic_string, std::allocator > const &, long)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 80, + "key_event_idx": 20, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 47, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7154, + "event": "path", + "message": "Condition \"!regexp_match(asmarg, regexp, matches)\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7161, + "event": "path", + "message": "Condition \"matches[6]->length()\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7163, + "event": "tainted_return_value", + "message": "Function \"lex_cast\" returns tainted data.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 184, + "event": "tainted_data_argument", + "message": "Calling function \"operator >>\" taints parameter \"out\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 184, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Condition \"(ss >> out)->operator bool()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 184, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "message": "Condition \"ss.eof()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 53, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 186, + "event": "return_tainted_data", + "message": "Returning tainted data \"out\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7163, + "event": "var_assign", + "message": "Assigning: \"scale\" = \"lex_cast(std::__cxx11::basic_string, std::allocator >(matches[6UL]->substr(1UL, 18446744073709551615UL)))\", which taints \"scale\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7165, "event": "path", - "message": "Switch case value \"118\".", + "message": "Condition \"matches[4]->length()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 56, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7167, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"std::map, std::allocator >, std::pair, std::less, std::allocator > >, std::allocator, std::allocator > const, std::pair > > >::iterator(this->dwarf_regs.find(baseregname)) == std::map, std::allocator >, std::pair, std::less, std::allocator > >, std::allocator, std::allocator > const, std::pair > > >::iterator(this->dwarf_regs.end())\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 63, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7170, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"matches[5]->length()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7172, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking true branch.", + "message": "Condition \"std::map, std::allocator >, std::pair, std::less, std::allocator > >, std::allocator, std::allocator > const, std::pair > > >::iterator(this->dwarf_regs.find(indexregname)) == std::map, std::allocator >, std::pair, std::less, std::allocator > >, std::allocator, std::allocator > const, std::pair > > >::iterator(this->dwarf_regs.end())\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 53, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7175, "event": "path", - "message": "Switch case value \"111\".", + "message": "Condition \"i <= 3\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 59, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7176, "event": "path", - "message": "Breaking from switch.", + "message": "Condition \"matches[i]->length()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 63, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7179, "event": "path", "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 52, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7175, "event": "path", - "message": "Condition \"(c = getopt(argc, argv, \"vo:\")) != -1\", taking false branch.", + "message": "Condition \"i <= 3\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 65, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7176, "event": "path", - "message": "Condition \"optind == argc\", taking false branch.", + "message": "Condition \"matches[i]->length()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7179, "event": "path", - "message": "Condition \"optind < argc\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 71, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7175, "event": "path", - "message": "Condition \"!fp[i]\", taking false branch.", + "message": "Condition \"i <= 3\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 75, + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7187, + "event": "lower_bounds", + "message": "Checking lower bounds of signed scalar \"scale\" by taking the true branch of \"scale > 9\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7187, + "event": "tainted_data", + "message": "Passing tainted expression \"scale\" to \"lex_cast\", which uses it as a loop boundary.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.h", + "line": 170, + "event": "taint_sink_lv_call", + "message": "Passing tainted expression \"in\" to taint sink \"to_string\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/basic_string.h", + "line": 6589, + "event": "lower_bounds", + "message": "Checking lower bounds of signed scalar \"__val\" by taking the false branch of \"__val < 0\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/basic_string.h", + "line": 6590, + "event": "var_assign_alias", + "message": "Assigning: \"__uval\" = \"__neg ? (unsigned int)~__val + 1U : __val\", which taints \"__uval\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/basic_string.h", + "line": 6593, + "event": "taint_sink_lv_call", + "message": "Passing tainted expression \"__uval\" to taint sink \"__to_chars_10_impl\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/charconv.h", + "line": 84, + "event": "loop_bound_upper", + "message": "Using tainted expression \"__val\" as a loop boundary.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", + "line": 7187, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "RESOURCE_LEAK", + "cwe": 404, + "imp": 1, + "function": "delete_statement_operand_visitor::visit_arrayindex(arrayindex *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 21, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4515, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "message": "Condition \"array\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 76, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4518, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"i < e->indexes.size()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 80, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4519, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"e->indexes[i] == NULL\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4522, "event": "path", - "message": "Condition \"optind < argc\", taking true branch.", + "message": "Breaking from loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 71, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4525, "event": "path", - "message": "Condition \"!fp[i]\", taking false branch.", + "message": "Condition \"!array_slice\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 75, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4542, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[i])\", taking true branch.", + "message": "Condition \"i < e->indexes.size()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 76, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4544, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"e->indexes[i]\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 80, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4549, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"mvar.is_parallel()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 69, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4551, "event": "path", - "message": "Condition \"optind < argc\", taking false branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 83, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4561, "event": "path", - "message": "Condition \"!outfile_name\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 84, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4542, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"i < e->indexes.size()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4544, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"e->indexes[i]\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4549, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"mvar.is_parallel()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4551, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4561, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Jumping back to the beginning of the loop.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4542, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"i < e->indexes.size()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4544, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"e->indexes[i]\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4555, "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "message": "Condition \"mvar.is_parallel()\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, - "event": "path", - "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4557, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4557, + "event": "var_assign", + "message": "Assigning: \"asvar\" = storage returned from \"new tmpvar(this->parent->gensym(r->index_types[i]))\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4558, + "event": "noescape", + "message": "Resource \"asvar\" is not freed or pointed-to in \"push_back\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 105, - "event": "path", - "message": "Condition \"verbose\", taking true branch.", - "verbosity_level": 2 - }, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 4559, + "event": "leaked_storage", + "message": "Variable \"asvar\" going out of scope leaks the storage it points to.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "FORWARD_NULL", + "cwe": 476, + "function": "c_unparser_assignment::visit_symbol(symbol *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 5, + "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5275, "event": "path", - "message": "Condition \"len > bufsize\", taking true branch.", + "message": "Condition \"e->referent != NULL\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 109, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5275, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"e->referent != NULL\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 111, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5275, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Condition \"(bool)(e->referent != NULL)\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5276, "event": "path", - "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "message": "Condition \"e->referent->index_types.size() != 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 120, - "event": "path", - "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5280, + "event": "var_compare_op", + "message": "Comparing \"this->rvalue\" to null implies that \"this->rvalue\" might be null.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, - "event": "path", - "message": "Condition \"min\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5287, + "event": "var_deref_model", + "message": "\"c_assignop\" dereferences null \"this->rvalue\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3438, "event": "path", - "message": "Condition \"++count != min\", taking true branch.", + "message": "Condition \"res->type() == pe_string\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 132, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3458, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Condition \"this->op == \"<<<\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 133, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3476, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"res->type() == pe_long\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 136, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3488, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Condition \"this->op == \"=\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3490, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"this->op == \"++\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3491, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3500, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"this->post\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3514, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"this->op == \"=\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3521, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"macop == \"/=\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3526, + "event": "deref_parm", + "message": "Directly dereferencing parameter \"this->rvalue\".", + "verbosity_level": 1 + } + ] + }, + { + "checker": "FORWARD_NULL", + "cwe": 476, + "function": "c_unparser_assignment::visit_arrayindex(arrayindex *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 7, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5578, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"array\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5585, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"array->referent->index_types.size() == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, - "event": "path", - "message": "Condition \"min == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5590, + "event": "var_compare_op", + "message": "Comparing \"this->rvalue\" to null implies that \"this->rvalue\" might be null.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5625, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"this->op == \"<<<\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5627, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"e->type == pe_stats\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5627, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"e->type == pe_stats\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5627, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"(bool)(e->type == pe_stats)\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5628, + "event": "var_deref_op", + "message": "Dereferencing null pointer \"this->rvalue\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "FORWARD_NULL", + "cwe": 476, + "function": "c_unparser_assignment::visit_arrayindex(arrayindex *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 5, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5578, "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "message": "Condition \"array\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5585, "event": "path", - "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Condition \"array->referent->index_types.size() == 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 105, - "event": "path", - "message": "Condition \"verbose\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5590, + "event": "var_compare_op", + "message": "Comparing \"this->rvalue\" to null implies that \"this->rvalue\" might be null.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5625, "event": "path", - "message": "Condition \"len > bufsize\", taking true branch.", + "message": "Condition \"this->op == \"<<<\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 109, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5642, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"this->op != \"=\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 111, - "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 5644, + "event": "var_deref_model", + "message": "\"c_assignop\" dereferences null \"this->rvalue\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3438, "event": "path", - "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "message": "Condition \"res->type() == pe_string\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 120, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3458, "event": "path", - "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", + "message": "Condition \"this->op == \"<<<\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3476, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Condition \"res->type() == pe_long\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3488, "event": "path", - "message": "Condition \"++count != min\", taking false branch.", + "message": "Condition \"this->op == \"=\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 132, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3490, "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", + "message": "Condition \"this->op == \"++\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 133, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3491, "event": "path", "message": "Falling through to end of if statement.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 136, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3500, "event": "path", - "message": "Condition \"min\", taking true branch.", + "message": "Condition \"this->post\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3514, "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", + "message": "Condition \"this->op == \"=\"\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 98, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3521, "event": "path", - "message": "Condition \"min == 0\", taking true branch.", + "message": "Condition \"macop == \"/=\"\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 102, + "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", + "line": 3526, + "event": "deref_parm", + "message": "Directly dereferencing parameter \"this->rvalue\".", + "verbosity_level": 1 + } + ] + }, + { + "checker": "SECURE_TEMP", + "cwe": 377, + "function": "copy_file(std::__cxx11::basic_string, std::allocator > const &, std::__cxx11::basic_string, std::allocator > const &, bool)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 2, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 137, "event": "path", - "message": "Jumping back to the beginning of the loop.", + "message": "Condition \"verbose\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 97, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 142, "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "message": "Condition \"fd1 == -1\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 104, - "event": "path", - "message": "Condition \"fread(&len, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 148, + "event": "secure_temp", + "message": "Calling \"mkstemp\" without securely setting umask first.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "TOCTOU", + "cwe": 367, + "function": "remove_file_or_dir(char const *)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 239, + "event": "fs_check_call", + "message": "Calling function \"stat\" to perform check on \"name\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 105, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 239, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"(rc = stat(name, &st)) != 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 107, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 246, + "event": "toctou", + "message": "Calling function \"remove\" that uses \"name\" after a check function. This can cause a time-of-check, time-of-use race condition.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "follow_link(std::__cxx11::basic_string, std::allocator > const &, std::__cxx11::basic_string, std::allocator > const &)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 475, + "event": "check_return", + "message": "Calling \"lstat(f, &st)\" without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 0 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "stap_fork_read(int, std::basic_ostream > &)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 4, + "events": [ + { + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 1067, "event": "path", - "message": "Condition \"len > bufsize\", taking true branch.", + "message": "Condition \"pipe(pipefd) != 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 109, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 1072, "event": "path", - "message": "Condition \"verbose\", taking true branch.", + "message": "Condition \"verbose > 1\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 111, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 1078, "event": "path", - "message": "Condition \"buf == NULL\", taking false branch.", + "message": "Condition \"child < 0\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 116, + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 1087, "event": "path", - "message": "Condition \"(rc = fread(buf, len, 1, fp[j])) <= 0\", taking false branch.", + "message": "Condition \"child == 0\", taking true branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 120, - "event": "path", - "message": "Condition \"(rc = fwrite(buf, len, 1, ofp)) <= 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", + "line": 1090, + "event": "check_return", + "message": "Calling \"fcntl(pipefd[1], 2, 1)\" without checking return value. This library function may fail and return an error code.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "CONSTANT_EXPRESSION_RESULT", + "cwe": 569, + "function": "fread", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/usr/include/bits/stdio2.h", + "line": 294, + "event": "pointless_expression", + "message": "The expression \"1 /* !0 */ || 1 /* !0 */\" does not accomplish anything because it evaluates to either of its identical operands, \"1 /* !0 */\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 126, + "file_name": "/usr/include/bits/stdio2.h", + "line": 294, + "event": "remediation", + "message": "Did you intend the operands to be different?", + "verbosity_level": 1 + } + ] + }, + { + "checker": "CONSTANT_EXPRESSION_RESULT", + "cwe": 569, + "function": "fread", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/usr/include/bits/stdio2.h", + "line": 294, + "event": "pointless_expression", + "message": "The expression \"true /* !0 */ || true /* !0 */\" does not accomplish anything because it evaluates to either of its identical operands, \"true /* !0 */\".", + "verbosity_level": 0 + }, + { + "file_name": "/usr/include/bits/stdio2.h", + "line": 294, + "event": "remediation", + "message": "Did you intend the operands to be different?", + "verbosity_level": 1 + } + ] + }, + { + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, + "imp": 1, + "function": "std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::equal_to, std::allocator > > *>, false> > > *, , std::tuple<>...> &&...)", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"min\", taking false branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 132, - "event": "check_return", - "message": "\"fread(void * restrict, size_t, size_t, FILE * restrict)\" returns the number of bytes read, but it is ignored.", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::equal_to, std::allocator > > *>, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::equal_to, std::allocator > > *>, false> >(std::__detail::_Insert_base, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 132, - "event": "path", - "message": "Condition \"fread(buf, 4UL /* sizeof (int) */, 1, fp[j])\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 133, - "event": "path", - "message": "Falling through to end of if statement.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 136, - "event": "path", - "message": "Condition \"min\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 138, - "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::equal_to, std::allocator > > *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 139, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 138, - "event": "path", - "message": "Condition \"i < ncpus\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 139, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/stap_merge.c", - "line": 138, - "event": "path", - "message": "Condition \"i < ncpus\", taking false branch.", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", "verbosity_level": 2 } ] }, { - "checker": "RESOURCE_LEAK", - "cwe": 404, + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, "imp": 1, - "function": "send_relocation_modules", + "function": "std::_Hashtable > *>, std::allocator > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc > *>, false> > > *, , std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 24, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 700, - "event": "path", - "message": "Condition \"r == 1\", taking false branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 700, - "event": "path", - "message": "Condition \"r == 2\", taking false branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 703, - "event": "path", - "message": "Condition \"i < globbuf.gl_pathc\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 719, - "event": "path", - "message": "Condition \"!section_name\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 719, - "event": "path", - "message": "Continuing loop.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 703, - "event": "path", - "message": "Condition \"i < globbuf.gl_pathc\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 719, - "event": "path", - "message": "Condition \"!section_name\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 719, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Continuing loop.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 703, - "event": "path", - "message": "Condition \"i < globbuf.gl_pathc\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 719, - "event": "path", - "message": "Condition \"!section_name\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 722, - "event": "path", - "message": "Condition \"!strcmp(section_name, \".\")\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 723, - "event": "path", - "message": "Condition \"!strcmp(section_name, \"..\")\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits > *>, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 726, - "event": "path", - "message": "Condition \"!module_name\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 729, - "event": "path", - "message": "Condition \"!module_name\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 732, - "event": "path", - "message": "Condition \"!module_name\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 736, - "event": "path", - "message": "Condition \"!module_name_end\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address > *>, false> >(std::__detail::_Insert_base > *>, std::allocator > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 738, - "event": "alloc_fn", - "message": "Storage is returned from allocation function \"fopen\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 738, - "event": "var_assign", - "message": "Assigning: \"secfile\" = storage returned from \"fopen(module_section_file, \"r\")\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 739, - "event": "path", - "message": "Condition \"!secfile\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 741, + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, "event": "noescape", - "message": "Resource \"secfile\" is not freed or pointed-to in \"fscanf\".", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 741, - "event": "path", - "message": "Condition \"1 == fscanf(secfile, \"0x%llx\", §ion_address)\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base > *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 750, - "event": "path", - "message": "Condition \"strstr(section_name, \"init.\") != NULL\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 761, - "event": "path", - "message": "Condition \"strcmp(section_name, \".gnu.linkonce.this_module\")\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 765, - "event": "noescape", - "message": "Resource \"secfile\" is not freed or pointed-to in \"fileno\".", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable > *>, std::allocator > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun.c", - "line": 774, - "event": "leaked_storage", - "message": "Variable \"secfile\" going out of scope leaks the storage it points to.", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, { - "checker": "BAD_SIZEOF", - "cwe": 467, - "function": "insert_module", + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, + "imp": 1, + "function": "std::_Hashtable, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, std::allocator, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, false> > > *, , std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 192, - "event": "bad_sizeof", - "message": "Taking the size of \"module_realpath\", which is the address of an object, is suspicious.", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 192, - "event": "remediation", - "message": "Did you intend the size of \"module_realpath\" itself?", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 - } - ] - }, - { - "checker": "TOCTOU", - "cwe": 367, - "function": "mountfs", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 8, - "events": [ + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 319, - "event": "path", - "message": "Condition \"statfs(\"/sys/kernel/debug\", &st) == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 319, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"(int)st.f_type == 1684170528 /* (int)1684170528 */\", taking false branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 326, - "event": "path", - "message": "Condition \"rc == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 326, - "event": "path", - "message": "Condition \"(sb.st_mode & 61440) == 16384\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 329, - "event": "path", - "message": "Condition \"rc == 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 334, - "event": "path", - "message": "Condition \"*__errno_location() != 19\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 343, - "event": "path", - "message": "Condition \"statfs(\"/mnt/relay\", &st) == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 343, - "event": "path", - "message": "Condition \"(int)st.f_type == -256595583 /* (int)4038371713U */\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 348, - "event": "fs_check_call", - "message": "Calling function \"stat\" to perform check on \"\"/mnt/relay\"\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 349, - "event": "path", - "message": "Condition \"rc == 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, false> >(std::__detail::_Insert_base, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, std::allocator, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 353, - "event": "path", - "message": "Condition \"rc < 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 367, - "event": "path", - "message": "Condition \"setuid(0) < 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 371, - "event": "path", - "message": "Condition \"setgid(0) < 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 378, - "event": "toctou", - "message": "Calling function \"mkdir\" that uses \"\"/mnt/relay\"\" after a check function. This can cause a time-of-check, time-of-use race condition.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, std::allocator, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, { - "checker": "TAINTED_SCALAR", - "cwe": 20, - "function": "assert_stap_module_permissions", + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, + "imp": 1, + "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, true> > > *, ...> &&...)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 6, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 770, - "event": "path", - "message": "Condition \"check_signature_rc == -2\", taking false branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 774, - "event": "path", - "message": "Condition \"getuid() == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 776, - "event": "tainted_return_value", - "message": "Function \"getenv\" returns tainted data.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 776, - "event": "var_assign", - "message": "Assigning: \"env_id\" = \"getenv(\"SYSTEMTAP_REAL_UID\")\", which taints \"env_id\".", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 777, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"env_id\", taking true branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 777, - "event": "tainted_data_transitive", - "message": "Call to function \"atoi\" with tainted argument \"*env_id\" returns tainted data. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 777, - "event": "tainted_data", - "message": "Passing tainted expression \"atoi(env_id)\" to \"setreuid\", which cannot accept tainted data.", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 777, - "event": "remediation", - "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", "verbosity_level": 1 - } - ] - }, - { - "checker": "TAINTED_SCALAR", - "cwe": 20, - "function": "assert_stap_module_permissions", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 10, - "events": [ + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 770, - "event": "path", - "message": "Condition \"check_signature_rc == -2\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, true> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 774, - "event": "path", - "message": "Condition \"getuid() == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 777, - "event": "path", - "message": "Condition \"env_id\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 777, - "event": "path", - "message": "Condition \"setreuid(atoi(env_id), -1)\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 778, - "event": "path", - "message": "Condition \"suppress_warnings\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, true> >(std::__detail::_Insert_base, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 778, - "event": "path", - "message": "Breaking from loop.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 782, - "event": "tainted_return_value", - "message": "Function \"getenv\" returns tainted data.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 782, - "event": "var_assign", - "message": "Assigning: \"env_id\" = \"getenv(\"SYSTEMTAP_REAL_GID\")\", which taints \"env_id\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 783, - "event": "path", - "message": "Condition \"env_id\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 783, - "event": "tainted_data_transitive", - "message": "Call to function \"atoi\" with tainted argument \"*env_id\" returns tainted data. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 783, - "event": "tainted_data", - "message": "Passing tainted expression \"atoi(env_id)\" to \"setregid\", which cannot accept tainted data.", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staprun/staprun_funcs.c", - "line": 783, - "event": "remediation", - "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, { - "checker": "UNINIT_CTOR", - "cwe": 457, - "function": "functioncall::functioncall()", + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, + "imp": 1, + "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, true> > > *, ...> &&...)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 1, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staptree.h", - "line": 467, - "event": "member_decl", - "message": "Class member declaration for \"synthetic\".", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/staptree.cxx", - "line": 79, - "event": "uninit_member", - "message": "Non-static class member \"synthetic\" is not initialized in this constructor nor in any functions that it calls.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "CHECKED_RETURN", - "cwe": 252, - "function": "netfilter_builder::build(systemtap_session &, probe *, probe_point *, std::map, std::allocator > > const &, std::vector > &)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 2, - "events": [ + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-netfilter.cxx", - "line": 521, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"!derived_probe_builder::get_param(parameters, interned_string(TOK_HOOK), hook)\", taking false branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-netfilter.cxx", - "line": 524, - "event": "path", - "message": "Condition \"!derived_probe_builder::get_param(parameters, interned_string(TOK_PF), pf)\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-netfilter.cxx", - "line": 527, - "event": "check_return", - "message": "Calling \"get_param\" without checking return value (as is done elsewhere 29 out of 32 times).", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-itrace.cxx", - "line": 111, - "event": "example_assign", - "message": "Example 1: Assigning: \"has_path\" = return value from \"derived_probe_builder::get_param(parameters, interned_string(TOK_PROCESS), path)\".", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-itrace.cxx", - "line": 114, - "event": "example_checked", - "message": "Example 1 (cont.): \"has_path\" has its value checked in \"has_path\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, true> > >::allocate(this->_M_node_allocator(), 1UL)\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-mark.cxx", - "line": 650, - "event": "example_assign", - "message": "Example 2: Assigning: \"has_mark_str\" = return value from \"derived_probe_builder::get_param(parameters, interned_string(TOK_MARK), mark_str_val)\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-mark.cxx", - "line": 653, - "event": "example_checked", - "message": "Example 2 (cont.): \"has_mark_str\" has its value checked in \"has_mark_str\".", + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-method.cxx", - "line": 96, - "event": "example_assign", - "message": "Example 3: Assigning: \"has_method_str\" = return value from \"derived_probe_builder::get_param(parameters, interned_string(TOK_METHOD), method_str_val)\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-method.cxx", - "line": 149, - "event": "example_checked", - "message": "Example 3 (cont.): \"has_method_str\" has its value checked in \"has_method_str\".", + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, true> >(std::__detail::_Insert_base, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-netfilter.cxx", - "line": 524, - "event": "example_checked", - "message": "Example 4: \"derived_probe_builder::get_param(parameters, interned_string(TOK_PF), pf)\" has its value checked in \"derived_probe_builder::get_param(parameters, interned_string(TOK_PF), pf)\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-perfmon.cxx", - "line": 325, - "event": "example_assign", - "message": "Example 5: Assigning: \"has_counter\" = return value from \"derived_probe_builder::get_param(parameters, interned_string(TOK_COUNTER), var)\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-perfmon.cxx", - "line": 328, - "event": "example_checked", - "message": "Example 5 (cont.): \"has_counter\" has its value checked in \"has_counter\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, { - "checker": "RESOURCE_LEAK", - "cwe": 404, + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, "imp": 1, - "function": "register_tapset_python(systemtap_session &)", + "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, true> > > *, ...> &&...)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 3, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-python.cxx", - "line": 713, + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, "event": "alloc_fn", - "message": "Storage is returned from allocation function \"operator new\".", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-python.cxx", - "line": 713, - "event": "var_assign", - "message": "Assigning: \"builder\" = storage returned from \"new python_builder\".", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-python.cxx", - "line": 725, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"i < roots.size()\", taking false branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-python.cxx", - "line": 740, - "event": "leaked_storage", - "message": "Variable \"builder\" going out of scope leaks the storage it points to.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "RESOURCE_LEAK", - "cwe": 404, - "imp": 1, - "function": "utrace_var_expanding_visitor::visit_target_symbol_arg(target_symbol *)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 6, - "events": [ + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, true> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 487, - "event": "path", - "message": "Condition \"this->flags != UDPF_SYSCALL\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, true> >(std::__detail::_Insert_base, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 490, - "event": "path", - "message": "Condition \"e->name == \"$$parms\"\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 497, - "event": "path", - "message": "Condition \"i < 6\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 499, - "event": "path", - "message": "Condition \"i > 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 502, - "event": "alloc_fn", - "message": "Storage is returned from allocation function \"operator new\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 502, - "event": "var_assign", - "message": "Assigning: \"tsym\" = storage returned from \"new target_symbol\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base >::_M_valptr()\" does not free or save its parameter \"this\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 517, - "event": "leaked_storage", - "message": "Variable \"tsym\" going out of scope leaks the storage it points to.", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, { - "checker": "RESOURCE_LEAK", - "cwe": 404, + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, "imp": 1, - "function": "register_tapset_utrace(systemtap_session &)", + "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, true> > > *, , std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 3, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 1347, + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, "event": "alloc_fn", - "message": "Storage is returned from allocation function \"operator new\".", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 1347, - "event": "var_assign", - "message": "Assigning: \"builder\" = storage returned from \"new utrace_builder\".", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 1354, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"i < roots.size()\", taking false branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapset-utrace.cxx", - "line": 1375, - "event": "leaked_storage", - "message": "Variable \"builder\" going out of scope leaks the storage it points to.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "UNINIT_CTOR", - "cwe": 457, - "function": "uprobe_derived_probe::uprobe_derived_probe(probe *, probe_point *, int, unsigned long, bool)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 1, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 609, - "event": "member_decl", - "message": "Class member declaration for \"build_id_vaddr\".", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 628, - "event": "uninit_member", - "message": "Non-static class member \"build_id_vaddr\" is not initialized in this constructor nor in any functions that it calls.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "TAINTED_SCALAR", - "cwe": 606, - "function": "dwarf_query::parse_function_spec(std::__cxx11::basic_string, std::allocator > const &)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 12, - "events": [ + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1260, - "event": "path", - "message": "Condition \"scope_pos != 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1264, - "event": "path", - "message": "Falling through to end of if statement.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, true> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1270, - "event": "path", - "message": "Condition \"src_pos == 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1281, - "event": "path", - "message": "Condition \"line_pos == 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1292, - "event": "path", - "message": "Condition \"spec[line_pos] == '+'\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1293, - "event": "path", - "message": "Falling through to end of if statement.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, true> >(std::__detail::_Insert_base, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1300, - "event": "path", - "message": "Condition \"this->lineno_type != WILDCARD\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1304, - "event": "path", - "message": "Condition \"spec->find_first_of(\",-\", line_pos + 1) != 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1309, - "event": "path", - "message": "Condition \"line_spec != std::vector, std::allocator >, std::allocator, std::allocator > > >::const_iterator(sub_specs.cend())\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1314, - "event": "path", - "message": "Condition \"ranges.size() > 1\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1317, - "event": "tainted_return_value", - "message": "Function \"lex_cast\" returns tainted data.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base >::_M_valptr()\" does not free or save its parameter \"this\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1317, - "event": "var_assign", - "message": "Assigning: \"high\" = \"lex_cast(ranges.back())\", which taints \"high\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1318, - "event": "tainted_data", - "message": "Using tainted variable \"high\" as a loop boundary.", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1318, - "event": "remediation", - "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, { - "checker": "TAINTED_SCALAR", - "cwe": 606, - "function": "dwarf_query::parse_function_spec(std::__cxx11::basic_string, std::allocator > const &)", + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, + "imp": 1, + "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, false> > > *, ...> &&...)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 13, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1260, - "event": "path", - "message": "Condition \"scope_pos != 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1264, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Falling through to end of if statement.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1270, - "event": "path", - "message": "Condition \"src_pos == 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1281, - "event": "path", - "message": "Condition \"line_pos == 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1292, - "event": "path", - "message": "Condition \"spec[line_pos] == '+'\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1293, - "event": "path", - "message": "Falling through to end of if statement.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1300, - "event": "path", - "message": "Condition \"this->lineno_type != WILDCARD\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1304, - "event": "path", - "message": "Condition \"spec->find_first_of(\",-\", line_pos + 1) != 18446744073709551615UL /* std::__cxx11::basic_string, std::allocator >::npos */\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1309, - "event": "path", - "message": "Condition \"line_spec != std::vector, std::allocator >, std::allocator, std::allocator > > >::const_iterator(sub_specs.cend())\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1314, - "event": "path", - "message": "Condition \"ranges.size() > 1\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, false> >(std::__detail::_Insert_base, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1316, - "event": "tainted_return_value", - "message": "Function \"lex_cast\" returns tainted data.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1316, - "event": "var_assign", - "message": "Assigning: \"low\" = \"lex_cast(ranges.front())\", which taints \"low\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1318, - "event": "var_assign_var", - "message": "Assigning: \"i\" = \"low\". Both are now tainted.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1318, - "event": "tainted_data", - "message": "Using tainted variable \"i\" as a loop boundary.", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 1318, - "event": "remediation", - "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base >::_M_valptr()\" does not free or save its parameter \"this\".", "verbosity_level": 1 - } - ] - }, - { - "checker": "DEADCODE", - "cwe": 561, - "function": "dwarf_pretty_print::recurse_array(Dwarf_Die *, target_symbol *, print_format *, bool)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 3, - "events": [ + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 3565, - "event": "assignment", - "message": "Assigning: \"i\" = \"0U\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 3567, - "event": "const", - "message": "At condition \"i > 0U\", the value of \"i\" must be equal to 0.", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 3567, - "event": "dead_error_condition", - "message": "The condition \"i > 0U\" cannot be true.", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 3568, - "event": "dead_error_line", - "message": "Execution cannot reach this statement: \"pf->raw_components.append(\"...\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, { - "checker": "RESOURCE_LEAK", - "cwe": 404, + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, "imp": 1, - "function": "dwarf_var_expanding_visitor::visit_target_symbol_context(target_symbol *)", + "function": "std::_Hashtable, std::allocator >, std::pair, std::allocator > const, Dwarf_Die>, std::allocator, std::allocator > const, Dwarf_Die> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::allocator > const &>, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator > const, Dwarf_Die>, true> > > *, , std::allocator > const &>, std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 9, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 4442, - "event": "path", - "message": "Condition \"pending_interrupts\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 4447, + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"null_die(this->scope_die)\", taking false branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 4454, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, "event": "alloc_fn", "message": "Storage is returned from allocation function \"operator new\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 4454, - "event": "var_assign", - "message": "Assigning: \"tsym\" = storage returned from \"new target_symbol(e)\".", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 4464, - "event": "path", - "message": "Condition \"this->q.has_return\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 4464, - "event": "path", - "message": "Condition \"e->name == \"$$return\"\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::allocator > const, Dwarf_Die>, true> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 4489, - "event": "path", - "message": "Condition \"i < scopes.size()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 4491, - "event": "path", - "message": "Condition \"dwarf_tag(scopes[i]) == DW_TAG_compile_unit\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 4492, - "event": "path", - "message": "Breaking from loop.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 4570, - "event": "leaked_storage", - "message": "Variable \"tsym\" going out of scope leaks the storage it points to.", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::allocator > const, Dwarf_Die>, true> >(std::__detail::_Insert_base, std::allocator >, std::pair, std::allocator > const, Dwarf_Die>, std::allocator, std::allocator > const, Dwarf_Die> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::allocator > const, Dwarf_Die> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::pair, std::allocator > const, Dwarf_Die>, std::allocator, std::allocator > const, Dwarf_Die> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, { - "checker": "TAINTED_SCALAR", - "cwe": 606, - "function": "sdt_uprobe_var_expanding_visitor::try_parse_arg_effective_addr(target_symbol *, std::__cxx11::basic_string, std::allocator > const &, long)", + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, + "imp": 1, + "function": "std::_Hashtable, std::allocator >, std::pair, std::allocator > const, bpf::value *>, std::allocator, std::allocator > const, bpf::value *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::allocator >, bpf::value *> >(std::__detail::_Hashtable_alloc, std::allocator > const, bpf::value *>, true> > > *, , std::allocator >, bpf::value *>...> &&...)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 16, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7154, - "event": "path", - "message": "Condition \"!regexp_match(asmarg, regexp, matches)\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7161, + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"matches[6]->length()\", taking true branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7163, - "event": "tainted_return_value", - "message": "Function \"lex_cast\" returns tainted data.", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7163, - "event": "var_assign", - "message": "Assigning: \"scale\" = \"lex_cast(std::__cxx11::basic_string, std::allocator >(matches[6UL]->substr(1UL, 18446744073709551615UL)))\", which taints \"scale\".", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7165, - "event": "path", - "message": "Condition \"matches[4]->length()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7167, - "event": "path", - "message": "Condition \"std::map, std::allocator >, std::pair, std::less, std::allocator > >, std::allocator, std::allocator > const, std::pair > > >::iterator(this->dwarf_regs.find(baseregname)) == std::map, std::allocator >, std::pair, std::less, std::allocator > >, std::allocator, std::allocator > const, std::pair > > >::iterator(this->dwarf_regs.end())\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::allocator > const, bpf::value *>, true> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7170, - "event": "path", - "message": "Condition \"matches[5]->length()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7172, - "event": "path", - "message": "Condition \"std::map, std::allocator >, std::pair, std::less, std::allocator > >, std::allocator, std::allocator > const, std::pair > > >::iterator(this->dwarf_regs.find(indexregname)) == std::map, std::allocator >, std::pair, std::less, std::allocator > >, std::allocator, std::allocator > const, std::pair > > >::iterator(this->dwarf_regs.end())\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7175, - "event": "path", - "message": "Condition \"i <= 3\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7176, - "event": "path", - "message": "Condition \"matches[i]->length()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::allocator > const, bpf::value *>, true> >(std::__detail::_Insert_base, std::allocator >, std::pair, std::allocator > const, bpf::value *>, std::allocator, std::allocator > const, bpf::value *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7179, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7175, - "event": "path", - "message": "Condition \"i <= 3\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7176, - "event": "path", - "message": "Condition \"matches[i]->length()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7179, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7175, - "event": "path", - "message": "Condition \"i <= 3\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::allocator > const, bpf::value *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7187, - "event": "lower_bounds", - "message": "Checking lower bounds of signed scalar \"scale\" by taking the true branch of \"scale > 9\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7187, - "event": "tainted_data", - "message": "Passing tainted expression \"scale\" to \"lex_cast\", which uses it as a loop boundary.", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/tapsets.cxx", - "line": 7187, - "event": "remediation", - "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::pair, std::allocator > const, bpf::value *>, std::allocator, std::allocator > const, bpf::value *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, { - "checker": "RESOURCE_LEAK", - "cwe": 404, + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, "imp": 1, - "function": "delete_statement_operand_visitor::visit_arrayindex(arrayindex *)", + "function": "std::_Hashtable, std::allocator >, std::pair, std::allocator > const, expression *>, std::allocator, std::allocator > const, expression *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::allocator > const &>, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator > const, expression *>, true> > > *, , std::allocator > const &>, std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 21, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4515, - "event": "path", - "message": "Condition \"array\", taking true branch.", - "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4518, - "event": "path", - "message": "Condition \"i < e->indexes.size()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4519, - "event": "path", - "message": "Condition \"e->indexes[i] == NULL\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4522, - "event": "path", - "message": "Breaking from loop.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4525, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"!array_slice\", taking false branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4542, - "event": "path", - "message": "Condition \"i < e->indexes.size()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4544, - "event": "path", - "message": "Condition \"e->indexes[i]\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4549, - "event": "path", - "message": "Condition \"mvar.is_parallel()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4551, - "event": "path", - "message": "Falling through to end of if statement.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::allocator > const, expression *>, true> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4561, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4542, - "event": "path", - "message": "Condition \"i < e->indexes.size()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4544, - "event": "path", - "message": "Condition \"e->indexes[i]\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4549, - "event": "path", - "message": "Condition \"mvar.is_parallel()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::allocator > const, expression *>, true> >(std::__detail::_Insert_base, std::allocator >, std::pair, std::allocator > const, expression *>, std::allocator, std::allocator > const, expression *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4551, - "event": "path", - "message": "Falling through to end of if statement.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4561, - "event": "path", - "message": "Jumping back to the beginning of the loop.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4542, - "event": "path", - "message": "Condition \"i < e->indexes.size()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4544, - "event": "path", - "message": "Condition \"e->indexes[i]\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4555, - "event": "path", - "message": "Condition \"mvar.is_parallel()\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::allocator > const, expression *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4557, - "event": "alloc_fn", - "message": "Storage is returned from allocation function \"operator new\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4557, - "event": "var_assign", - "message": "Assigning: \"asvar\" = storage returned from \"new tmpvar(this->parent->gensym(r->index_types[i]))\".", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4558, - "event": "noescape", - "message": "Resource \"asvar\" is not freed or pointed-to in \"push_back\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::pair, std::allocator > const, expression *>, std::allocator, std::allocator > const, expression *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 4559, - "event": "leaked_storage", - "message": "Variable \"asvar\" going out of scope leaks the storage it points to.", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, { - "checker": "FORWARD_NULL", - "cwe": 476, - "function": "c_unparser_assignment::visit_symbol(symbol *)", + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, + "imp": 1, + "function": "std::_Hashtable, std::allocator >, std::pair, std::allocator > const, std::vector > *>, std::allocator, std::allocator > const, std::vector > *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::allocator > &&>, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator > const, std::vector > *>, true> > > *, , std::allocator > &&>, std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", - "key_event_idx": 5, + "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5275, - "event": "path", - "message": "Condition \"e->referent != NULL\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", + "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5275, - "event": "path", - "message": "Condition \"e->referent != NULL\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5275, - "event": "path", - "message": "Condition \"(bool)(e->referent != NULL)\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5276, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"e->referent->index_types.size() != 0\", taking false branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5280, - "event": "var_compare_op", - "message": "Comparing \"this->rvalue\" to null implies that \"this->rvalue\" might be null.", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5287, - "event": "var_deref_model", - "message": "\"c_assignop\" dereferences null \"this->rvalue\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "FORWARD_NULL", - "cwe": 476, - "function": "c_unparser_assignment::visit_arrayindex(arrayindex *)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 7, - "events": [ - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5578, - "event": "path", - "message": "Condition \"array\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5585, - "event": "path", - "message": "Condition \"array->referent->index_types.size() == 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5590, - "event": "var_compare_op", - "message": "Comparing \"this->rvalue\" to null implies that \"this->rvalue\" might be null.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::allocator > const, std::vector > *>, true> > >::allocate(this->_M_node_allocator(), 1UL)\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5625, - "event": "path", - "message": "Condition \"this->op == \"<<<\"\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5627, - "event": "path", - "message": "Condition \"e->type == pe_stats\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5627, - "event": "path", - "message": "Condition \"e->type == pe_stats\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5627, - "event": "path", - "message": "Condition \"(bool)(e->type == pe_stats)\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::allocator > const, std::vector > *>, true> >(std::__detail::_Insert_base, std::allocator >, std::pair, std::allocator > const, std::vector > *>, std::allocator, std::allocator > const, std::vector > *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5628, - "event": "var_deref_op", - "message": "Dereferencing null pointer \"this->rvalue\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "FORWARD_NULL", - "cwe": 476, - "function": "c_unparser_assignment::visit_arrayindex(arrayindex *)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 5, - "events": [ + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5578, - "event": "path", - "message": "Condition \"array\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5585, - "event": "path", - "message": "Condition \"array->referent->index_types.size() == 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5590, - "event": "var_compare_op", - "message": "Comparing \"this->rvalue\" to null implies that \"this->rvalue\" might be null.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5625, - "event": "path", - "message": "Condition \"this->op == \"<<<\"\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::allocator > const, std::vector > *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5642, - "event": "path", - "message": "Condition \"this->op != \"=\"\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/translate.cxx", - "line": 5644, - "event": "var_deref_model", - "message": "\"c_assignop\" dereferences null \"this->rvalue\".", - "verbosity_level": 0 - } - ] - }, - { - "checker": "SECURE_TEMP", - "cwe": 377, - "function": "copy_file(std::__cxx11::basic_string, std::allocator > const &, std::__cxx11::basic_string, std::allocator > const &, bool)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 2, - "events": [ + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "verbosity_level": 1 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 137, - "event": "path", - "message": "Condition \"verbose\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::pair, std::allocator > const, std::vector > *>, std::allocator, std::allocator > const, std::vector > *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 142, - "event": "path", - "message": "Condition \"fd1 == -1\", taking false branch.", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", "verbosity_level": 2 - }, - { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 148, - "event": "secure_temp", - "message": "Calling \"mkstemp\" without securely setting umask first.", - "verbosity_level": 0 } ] }, { - "checker": "TOCTOU", - "cwe": 367, - "function": "remove_file_or_dir(char const *)", + "checker": "CTOR_DTOR_LEAK", + "cwe": 401, + "imp": 1, + "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, false> > > *, ...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, "events": [ { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 239, - "event": "fs_check_call", - "message": "Calling function \"stat\" to perform check on \"name\".", + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "alloc_fn", + "message": "Calling allocation function \"_M_allocate_node\".", "verbosity_level": 0 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 239, + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, "event": "path", - "message": "Condition \"(rc = stat(name, &st)) != 0\", taking false branch.", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 246, - "event": "toctou", - "message": "Calling function \"remove\" that uses \"name\" after a check function. This can cause a time-of-check, time-of-use race condition.", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", "verbosity_level": 1 - } - ] - }, - { - "checker": "CHECKED_RETURN", - "cwe": 252, - "function": "follow_link(std::__cxx11::basic_string, std::allocator > const &, std::__cxx11::basic_string, std::allocator > const &)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 475, - "event": "check_return", - "message": "Calling \"lstat(f, &st)\" without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]", - "verbosity_level": 0 - } - ] - }, - { - "checker": "CHECKED_RETURN", - "cwe": 252, - "function": "stap_fork_read(int, std::basic_ostream > &)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 4, - "events": [ + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 1067, - "event": "path", - "message": "Condition \"pipe(pipefd) != 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 1072, - "event": "path", - "message": "Condition \"verbose > 1\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 1078, - "event": "path", - "message": "Condition \"child < 0\", taking false branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 1087, - "event": "path", - "message": "Condition \"child == 0\", taking true branch.", - "verbosity_level": 2 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/builddir/build/BUILD/systemtap-4.4/util.cxx", - "line": 1090, - "event": "check_return", - "message": "Calling \"fcntl(pipefd[1], 2, 1)\" without checking return value. This library function may fail and return an error code.", - "verbosity_level": 0 - } - ] - }, - { - "checker": "CONSTANT_EXPRESSION_RESULT", - "cwe": 569, - "function": "fread", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, { - "file_name": "/usr/include/bits/stdio2.h", - "line": 294, - "event": "pointless_expression", - "message": "The expression \"1 /* !0 */ || 1 /* !0 */\" does not accomplish anything because it evaluates to either of its identical operands, \"1 /* !0 */\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, false> >(std::__detail::_Insert_base, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 }, { - "file_name": "/usr/include/bits/stdio2.h", - "line": 294, - "event": "remediation", - "message": "Did you intend the operands to be different?", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", "verbosity_level": 1 - } - ] - }, - { - "checker": "CONSTANT_EXPRESSION_RESULT", - "cwe": 569, - "function": "fread", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + }, { - "file_name": "/usr/include/bits/stdio2.h", - "line": 294, - "event": "pointless_expression", - "message": "The expression \"true /* !0 */ || true /* !0 */\" does not accomplish anything because it evaluates to either of its identical operands, \"true /* !0 */\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 }, { - "file_name": "/usr/include/bits/stdio2.h", - "line": 294, - "event": "remediation", - "message": "Did you intend the operands to be different?", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "assign", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 272, + "event": "ctor_dtor_leak", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable.h", + "line": 276, + "event": "destructor", + "message": "This is the destructor implementation.", + "verbosity_level": 2 } ] }, @@ -10040,7 +13564,7 @@ "checker": "CTOR_DTOR_LEAK", "cwe": 401, "imp": 1, - "function": "std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::equal_to, std::allocator > > *>, false> > > *, , std::tuple<>...> &&...)", + "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, false> > > *, ...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, @@ -10052,18 +13576,137 @@ "message": "Calling allocation function \"_M_allocate_node\".", "verbosity_level": 0 }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, false> >(std::__detail::_Insert_base, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", "verbosity_level": 1 }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { @@ -10079,7 +13722,7 @@ "checker": "CTOR_DTOR_LEAK", "cwe": 401, "imp": 1, - "function": "std::_Hashtable > *>, std::allocator > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc > *>, false> > > *, , std::tuple<>...> &&...)", + "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, false> > > *, ...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, @@ -10092,82 +13735,123 @@ "verbosity_level": 0 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable > *>, std::allocator > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, std::allocator, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, false> > > *, , std::tuple<>...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, std::allocator, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", - "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, true> > > *, ...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, false> >(std::__detail::_Insert_base, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", @@ -10180,7 +13864,7 @@ "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { @@ -10196,7 +13880,7 @@ "checker": "CTOR_DTOR_LEAK", "cwe": 401, "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, true> > > *, ...> &&...)", + "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, false> > > *, , std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, @@ -10208,18 +13892,137 @@ "message": "Calling allocation function \"_M_allocate_node\".", "verbosity_level": 0 }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, false> >(std::__detail::_Insert_base, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", "verbosity_level": 1 }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { @@ -10235,7 +14038,7 @@ "checker": "CTOR_DTOR_LEAK", "cwe": 401, "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, true> > > *, ...> &&...)", + "function": "std::_Hashtable, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, std::allocator, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, false> > > *, , std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, @@ -10247,18 +14050,137 @@ "message": "Calling allocation function \"_M_allocate_node\".", "verbosity_level": 0 }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, false> >(std::__detail::_Insert_base, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, std::allocator, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", "verbosity_level": 1 }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, std::allocator, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { @@ -10274,7 +14196,7 @@ "checker": "CTOR_DTOR_LEAK", "cwe": 401, "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, true> > > *, , std::tuple<>...> &&...)", + "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, false> > > *, ...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, @@ -10287,43 +14209,123 @@ "verbosity_level": 0 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, false> > > *, ...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, false> >(std::__detail::_Insert_base, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", @@ -10336,7 +14338,7 @@ "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { @@ -10352,7 +14354,7 @@ "checker": "CTOR_DTOR_LEAK", "cwe": 401, "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::pair, std::allocator > const, Dwarf_Die>, std::allocator, std::allocator > const, Dwarf_Die> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::allocator > const &>, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator > const, Dwarf_Die>, true> > > *, , std::allocator > const &>, std::tuple<>...> &&...)", + "function": "std::_Hashtable, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *>, std::allocator, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *>, false> > > *, , std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, @@ -10364,6 +14366,125 @@ "message": "Calling allocation function \"_M_allocate_node\".", "verbosity_level": 0 }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *>, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *>, false> >(std::__detail::_Insert_base, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *>, std::allocator, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, @@ -10375,7 +14496,7 @@ "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::pair, std::allocator > const, Dwarf_Die>, std::allocator, std::allocator > const, Dwarf_Die> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *>, std::allocator, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { @@ -10391,7 +14512,7 @@ "checker": "CTOR_DTOR_LEAK", "cwe": 401, "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::pair, std::allocator > const, bpf::value *>, std::allocator, std::allocator > const, bpf::value *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::allocator >, bpf::value *> >(std::__detail::_Hashtable_alloc, std::allocator > const, bpf::value *>, true> > > *, , std::allocator >, bpf::value *>...> &&...)", + "function": "std::_Hashtable, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *>, std::allocator, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *>, false> > > *, , std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, @@ -10404,82 +14525,123 @@ "verbosity_level": 0 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::pair, std::allocator > const, bpf::value *>, std::allocator, std::allocator > const, bpf::value *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::pair, std::allocator > const, expression *>, std::allocator, std::allocator > const, expression *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::allocator > const &>, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator > const, expression *>, true> > > *, , std::allocator > const &>, std::tuple<>...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *>, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::pair, std::allocator > const, expression *>, std::allocator, std::allocator > const, expression *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", - "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::pair, std::allocator > const, std::vector > *>, std::allocator, std::allocator > const, std::vector > *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::allocator > &&>, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator > const, std::vector > *>, true> > > *, , std::allocator > &&>, std::tuple<>...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *>, false> >(std::__detail::_Insert_base, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *>, std::allocator, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", @@ -10492,7 +14654,7 @@ "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::pair, std::allocator > const, std::vector > *>, std::allocator, std::allocator > const, std::vector > *> >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *>, std::allocator, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { @@ -10508,7 +14670,7 @@ "checker": "CTOR_DTOR_LEAK", "cwe": 401, "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, false> > > *, ...> &&...)", + "function": "std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::equal_to, std::allocator > > *>, false> > > *, , std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, @@ -10521,121 +14683,123 @@ "verbosity_level": 0 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, false> > > *, ...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::equal_to, std::allocator > > *>, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", - "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, false> > > *, ...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::equal_to, std::allocator > > *>, false> >(std::__detail::_Insert_base, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", - "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, false> > > *, , std::tuple<>...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::equal_to, std::allocator > > *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", @@ -10648,7 +14812,7 @@ "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { @@ -10664,7 +14828,7 @@ "checker": "CTOR_DTOR_LEAK", "cwe": 401, "imp": 1, - "function": "std::_Hashtable, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, std::allocator, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, false> > > *, , std::tuple<>...> &&...)", + "function": "std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::equal_to, std::allocator > > *>, false> > > *, , std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, @@ -10677,121 +14841,123 @@ "verbosity_level": 0 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > >, std::allocator, std::allocator >, int, std::less, std::allocator > >, std::allocator, std::allocator > const, int> > > > >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node >(std::__detail::_Hashtable_alloc, false> > > *, ...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args))\".", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::equal_to, std::allocator > > *>, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", - "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *>, std::allocator, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *>, false> > > *, , std::tuple<>...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::equal_to, std::allocator > > *>, false> >(std::__detail::_Insert_base, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *>, std::allocator, std::allocator >, Dwarf_Die, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, Dwarf_Die> > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", - "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *>, std::allocator, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *>, false> > > *, , std::tuple<>...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::equal_to, std::allocator > > *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", @@ -10804,7 +14970,7 @@ "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *>, std::allocator, std::allocator >, std::vector > *, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::vector > *> > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", "verbosity_level": 1 }, { @@ -10820,7 +14986,7 @@ "checker": "CTOR_DTOR_LEAK", "cwe": 401, "imp": 1, - "function": "std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::equal_to, std::allocator > > *>, false> > > *, , std::tuple<>...> &&...)", + "function": "std::_Hashtable, std::equal_to, std::allocator > *>, std::allocator, std::equal_to, std::allocator > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::equal_to, std::allocator > *>, false> > > *, , std::tuple<>...> &&...)", "language": "c/c++", "tool": "coverity", "key_event_idx": 0, @@ -10833,82 +14999,123 @@ "verbosity_level": 0 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::equal_to, std::allocator > > *>, false> > > *, , std::tuple<>...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, "event": "assign", - "message": "Assigning: \"this->_M_node\" = \"__h->_M_allocate_node(std::forward(__args), std::forward(__args), std::forward(__args))\".", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::equal_to, std::allocator > *>, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "ctor_dtor_leak", - "message": "The constructor allocates field \"_M_node\" of \"std::_Hashtable, std::equal_to, std::allocator > > *>, std::allocator, std::equal_to, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node\" but the destructor and whatever functions it calls do not free it.", + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", "verbosity_level": 1 }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 276, - "event": "destructor", - "message": "This is the destructor implementation.", - "verbosity_level": 2 - } - ] - }, - { - "checker": "CTOR_DTOR_LEAK", - "cwe": 401, - "imp": 1, - "function": "std::_Hashtable, std::equal_to, std::allocator > *>, std::allocator, std::equal_to, std::allocator > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_Scoped_node::_Scoped_node, std::tuple<> >(std::__detail::_Hashtable_alloc, std::equal_to, std::allocator > *>, false> > > *, , std::tuple<>...> &&...)", - "language": "c/c++", - "tool": "coverity", - "key_event_idx": 0, - "events": [ + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, { - "file_name": "/usr/include/c++/10/bits/hashtable.h", - "line": 272, - "event": "alloc_fn", - "message": "Calling allocation function \"_M_allocate_node\".", - "verbosity_level": 0 + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::equal_to, std::allocator > *>, false> >(std::__detail::_Insert_base, std::equal_to, std::allocator > *>, std::allocator, std::equal_to, std::allocator > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::equal_to, std::allocator > *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", @@ -10949,6 +15156,125 @@ "message": "Calling allocation function \"_M_allocate_node\".", "verbosity_level": 0 }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits > *>, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address > *>, false> >(std::__detail::_Insert_base > *>, std::allocator > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base > *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, @@ -10988,6 +15314,125 @@ "message": "Calling allocation function \"_M_allocate_node\".", "verbosity_level": 0 }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 105, + "event": "path", + "message": "Condition \"__n > this->_M_max_size()\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "alloc_fn", + "message": "Storage is returned from allocation function \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/ext/new_allocator.h", + "line": 115, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"operator new\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/alloc_traits.h", + "line": 460, + "event": "return_alloc_fn", + "message": "Directly returning storage allocated by \"allocate\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2032, + "event": "assign", + "message": "Assigning: \"__nptr\" = \"std::allocator_traits, std::allocator > > *>, false> > >::allocate(this->_M_node_allocator(), 1UL)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "identity_transfer", + "message": "Passing \"__nptr\" as argument 1 to function \"__to_address\", which returns that argument.", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 159, + "event": "return_parm", + "message": "Returning parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "noescape", + "message": "Resource \"__nptr\" is not freed or pointed-to in function \"__to_address\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/ptr_traits.h", + "line": 156, + "event": "noescape", + "message": "\"std::__to_address, std::allocator > > *>, false> >(std::__detail::_Insert_base, std::allocator > > *>, std::allocator, std::allocator > > *> >, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::__node_type *)\" does not free or save its parameter \"__ptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2033, + "event": "assign", + "message": "Assigning: \"__n\" = \"std::__to_address(__nptr)\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "identity_transfer", + "message": "Passing \"(void *)__n\" as argument 2 to function \"operator new\", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2036, + "event": "noescape", + "message": "Resource \"(void *)__n\" is not freed or pointed-to in function \"operator new\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2037, + "event": "noescape", + "message": "Resource \"__n\" is not freed or pointed-to in function \"_M_valptr\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 236, + "event": "noescape", + "message": "\"std::__detail::_Hash_node_value_base, std::allocator > > *> >::_M_valptr()\" does not free or save its parameter \"this\".", + "verbosity_level": 1 + }, + { + "file_name": "/usr/include/c++/10/bits/hashtable_policy.h", + "line": 2040, + "event": "return_alloc", + "message": "Returning allocated memory \"__n\".", + "verbosity_level": 1 + }, { "file_name": "/usr/include/c++/10/bits/hashtable.h", "line": 272, diff --git a/tests/csgrep/0130-file-glob-stdin.txt b/tests/csgrep/0130-file-glob-stdin.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/csgrep/0132-cov-parser-nested-evt-args.txt b/tests/csgrep/0132-cov-parser-nested-evt-args.txt new file mode 100644 index 00000000..7df3c951 --- /dev/null +++ b/tests/csgrep/0132-cov-parser-nested-evt-args.txt @@ -0,0 +1 @@ +--mode=json diff --git a/tests/csgrep/0132-cov-parser-nested-evt-stdin.txt b/tests/csgrep/0132-cov-parser-nested-evt-stdin.txt new file mode 100644 index 00000000..df903be7 --- /dev/null +++ b/tests/csgrep/0132-cov-parser-nested-evt-stdin.txt @@ -0,0 +1,4219 @@ +{ + "type" : "Coverity issues", + "formatVersion" : 10, + "suppressedIssueCount" : 0, + "issues" : [ + { + "mergeKey" : "ce888fbafa861cf8a6c8596e2b1e9f1b", + "occurrenceCountForMK" : 2, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "ASSERT_SIDE_EFFECT", + "subcategory" : "none", + "type" : "side_effect_in_assert", + "subtype" : "definite", + "code-language" : "c/c++", + "extra" : "assert:loop,loop_done", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4156, + "mainEventColumnNumber" : 9, + "properties" : {}, + "functionDisplayName" : "ev_run", + "functionMangledName" : "ev_run", + "functionHtmlDisplayName" : "ev_run", + "functionSimpleName" : "ev_run", + "functionSearchName" : "ev_run", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Assignment {0} has a side effect. This code will work differently in a non-debug build.}{{code{loop->loop_done = 128}}}}}}", + "eventDescription" : "Assignment \"loop->loop_done = 128\" has a side effect. This code will work differently in a non-debug build.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "assignment_where_comparison_intended", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4156, + "columnNumber" : 9, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Did you intend to use a comparison ({code{==}}) instead?}}}}", + "eventDescription" : "Did you intend to use a comparison (\"==\") instead?", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "remediation", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4156, + "columnNumber" : 9, + "main" : false, + "moreInformationId" : null, + "remediation" : true, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "none", + "weaknessIdCategory" : "1316", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "If the assertion is turned off, the side-effect may be lost.", + "subcategoryShortDescription" : "Side effect in assertion", + "subcategoryLongDescription" : "Assertion contains an operation with a side effect" + } + }, + { + "mergeKey" : "ce888fbafa861cf8a6c8596e2b1e9f1b", + "occurrenceCountForMK" : 2, + "occurrenceNumberInMK" : 2, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "ASSERT_SIDE_EFFECT", + "subcategory" : "none", + "type" : "side_effect_in_assert", + "subtype" : "definite", + "code-language" : "c/c++", + "extra" : "assert:loop,loop_done", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4158, + "mainEventColumnNumber" : 9, + "properties" : {}, + "functionDisplayName" : "ev_run", + "functionMangledName" : "ev_run", + "functionHtmlDisplayName" : "ev_run", + "functionSimpleName" : "ev_run", + "functionSearchName" : "ev_run", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Assignment {0} has a side effect. This code will work differently in a non-debug build.}{{code{loop->loop_done = EVBREAK_CANCEL}}}}}}", + "eventDescription" : "Assignment \"loop->loop_done = EVBREAK_CANCEL\" has a side effect. This code will work differently in a non-debug build.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "assignment_where_comparison_intended", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4158, + "columnNumber" : 9, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Did you intend to use a comparison ({code{==}}) instead?}}}}", + "eventDescription" : "Did you intend to use a comparison (\"==\") instead?", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "remediation", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4158, + "columnNumber" : 9, + "main" : false, + "moreInformationId" : null, + "remediation" : true, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "none", + "weaknessIdCategory" : "1316", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "If the assertion is turned off, the side-effect may be lost.", + "subcategoryShortDescription" : "Side effect in assertion", + "subcategoryLongDescription" : "Assertion contains an operation with a side effect" + } + }, + { + "mergeKey" : "5160179c687c8ddbdddceafd6152edd8", + "occurrenceCountForMK" : 2, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "CHECKED_RETURN", + "subcategory" : "library_function", + "type" : "unchecked_return_value", + "subtype" : "library_function", + "code-language" : "c/c++", + "extra" : "fcntl", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 2563, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "fd_intern", + "functionMangledName" : "fd_intern", + "functionHtmlDisplayName" : "fd_intern", + "functionSimpleName" : "fd_intern", + "functionSearchName" : "fd_intern", + "localStatus" : null, + "ordered" : true, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Calling {0} without checking return value. This library function may fail and return an error code.}{{code{fcntl(fd, 2, 1)}}}}}}", + "eventDescription" : "Calling \"fcntl(fd, 2, 1)\" without checking return value. This library function may fail and return an error code.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "check_return", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 2563, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Error handling issues", + "categoryDescription" : "Error handling issues", + "cweCategory" : "252", + "weaknessIdCategory" : "770", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [ + "Unchecked call to function" + ], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The function returns a value that indicates an error condition. If this is not checked, the error condition may not be handled correctly.", + "subcategoryShortDescription" : "Unchecked return value from library", + "subcategoryLongDescription" : "Value returned from a library function is not checked for errors before being used. This value may indicate an error condition." + } + }, + { + "mergeKey" : "5160179c687c8ddbdddceafd6152edd8", + "occurrenceCountForMK" : 2, + "occurrenceNumberInMK" : 2, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "CHECKED_RETURN", + "subcategory" : "library_function", + "type" : "unchecked_return_value", + "subtype" : "library_function", + "code-language" : "c/c++", + "extra" : "fcntl", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 2564, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "fd_intern", + "functionMangledName" : "fd_intern", + "functionHtmlDisplayName" : "fd_intern", + "functionSimpleName" : "fd_intern", + "functionSearchName" : "fd_intern", + "localStatus" : null, + "ordered" : true, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Calling {0} without checking return value. This library function may fail and return an error code.}{{code{fcntl(fd, 4, 2048)}}}}}}", + "eventDescription" : "Calling \"fcntl(fd, 4, 2048)\" without checking return value. This library function may fail and return an error code.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "check_return", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 2564, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Error handling issues", + "categoryDescription" : "Error handling issues", + "cweCategory" : "252", + "weaknessIdCategory" : "770", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [ + "Unchecked call to function" + ], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The function returns a value that indicates an error condition. If this is not checked, the error condition may not be handled correctly.", + "subcategoryShortDescription" : "Unchecked return value from library", + "subcategoryLongDescription" : "Value returned from a library function is not checked for errors before being used. This value may indicate an error condition." + } + }, + { + "mergeKey" : "a88da81f1170252495b094d13da82a05", + "occurrenceCountForMK" : 2, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "CHECKED_RETURN", + "subcategory" : "short_read", + "type" : "unchecked_return_value", + "subtype" : "short_read", + "code-language" : "c/c++", + "extra" : "read", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 2838, + "mainEventColumnNumber" : 11, + "properties" : {}, + "functionDisplayName" : "pipecb", + "functionMangledName" : "pipecb", + "functionHtmlDisplayName" : "pipecb", + "functionSimpleName" : "pipecb", + "functionSearchName" : "pipecb", + "localStatus" : null, + "ordered" : true, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{revents & EV_READ}}}}}}", + "eventDescription" : "Condition \"revents & EV_READ\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 2832, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->evpipe[0] < 0}}}}}}", + "eventDescription" : "Condition \"loop->evpipe[0] < 0\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 2835, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} returns the number of bytes read, but it is ignored.}{{code{read(int, void *, size_t)}}}}}}", + "eventDescription" : "\"read(int, void *, size_t)\" returns the number of bytes read, but it is ignored.", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "check_return", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 2838, + "columnNumber" : 11, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Error handling issues", + "categoryDescription" : "Error handling issues", + "cweCategory" : "252", + "weaknessIdCategory" : "770", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [ + "Ignoring number of bytes read" + ], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The number of bytes copied into the buffer can be smaller than the requested number and the buffer can potentially be accessed out of range.", + "subcategoryShortDescription" : "Ignoring number of bytes read", + "subcategoryLongDescription" : "Value returned from a function and indicating the number of bytes read is ignored." + } + }, + { + "mergeKey" : "150040f2f85914b567c4f3da34eb0053", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "CHECKED_RETURN", + "subcategory" : "library_function", + "type" : "unchecked_return_value", + "subtype" : "library_function", + "code-language" : "c/c++", + "extra" : "fcntl", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "mainEventLineNumber" : 256, + "mainEventColumnNumber" : 9, + "properties" : {}, + "functionDisplayName" : "epoll_epoll_create", + "functionMangledName" : "epoll_epoll_create", + "functionHtmlDisplayName" : "epoll_epoll_create", + "functionSimpleName" : "epoll_epoll_create", + "functionSearchName" : "epoll_epoll_create", + "localStatus" : null, + "ordered" : true, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{fd < 0}}}}}}", + "eventDescription" : "Condition \"fd < 0\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "lineNumber" : 250, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{*__errno_location() == 22}}}}}}", + "eventDescription" : "Condition \"*__errno_location() == 22\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "lineNumber" : 250, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{fd >= 0}}}}}}", + "eventDescription" : "Condition \"fd >= 0\", taking true branch.", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "lineNumber" : 255, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Calling {0} without checking return value. This library function may fail and return an error code.}{{code{fcntl(fd, 2, 1)}}}}}}", + "eventDescription" : "Calling \"fcntl(fd, 2, 1)\" without checking return value. This library function may fail and return an error code.", + "eventNumber" : 4, + "eventTreePosition" : "4", + "eventSet" : 0, + "eventTag" : "check_return", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "lineNumber" : 256, + "columnNumber" : 9, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Error handling issues", + "categoryDescription" : "Error handling issues", + "cweCategory" : "252", + "weaknessIdCategory" : "770", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [ + "Unchecked call to function" + ], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The function returns a value that indicates an error condition. If this is not checked, the error condition may not be handled correctly.", + "subcategoryShortDescription" : "Unchecked return value from library", + "subcategoryLongDescription" : "Value returned from a library function is not checked for errors before being used. This value may indicate an error condition." + } + }, + { + "mergeKey" : "a88da81f1170252495b094d13da82a05", + "occurrenceCountForMK" : 2, + "occurrenceNumberInMK" : 2, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "CHECKED_RETURN", + "subcategory" : "short_read", + "type" : "unchecked_return_value", + "subtype" : "short_read", + "code-language" : "c/c++", + "extra" : "read", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 2852, + "mainEventColumnNumber" : 11, + "properties" : {}, + "functionDisplayName" : "pipecb", + "functionMangledName" : "pipecb", + "functionHtmlDisplayName" : "pipecb", + "functionSimpleName" : "pipecb", + "functionSearchName" : "pipecb", + "localStatus" : null, + "ordered" : true, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{revents & EV_READ}}}}}}", + "eventDescription" : "Condition \"revents & EV_READ\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 2832, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{loop->evpipe[0] < 0}}}}}}", + "eventDescription" : "Condition \"loop->evpipe[0] < 0\", taking false branch.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 2835, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} returns the number of bytes read, but it is ignored.}{{code{read(int, void *, size_t)}}}}}}", + "eventDescription" : "\"read(int, void *, size_t)\" returns the number of bytes read, but it is ignored.", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "check_return", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 2852, + "columnNumber" : 11, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Error handling issues", + "categoryDescription" : "Error handling issues", + "cweCategory" : "252", + "weaknessIdCategory" : "770", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [ + "Ignoring number of bytes read" + ], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The number of bytes copied into the buffer can be smaller than the requested number and the buffer can potentially be accessed out of range.", + "subcategoryShortDescription" : "Ignoring number of bytes read", + "subcategoryLongDescription" : "Value returned from a function and indicating the number of bytes read is ignored." + } + }, + { + "mergeKey" : "b7e28e0b2a1ab2f51f1004c5abce88a4", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "DEADCODE", + "subcategory" : "none", + "type" : "deadcode", + "subtype" : "logical_contradiction", + "code-language" : "c/c++", + "extra" : "nev", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "mainEventLineNumber" : 103, + "mainEventColumnNumber" : 9, + "properties" : {}, + "functionDisplayName" : "epoll_modify", + "functionMangledName" : "epoll_modify", + "functionHtmlDisplayName" : "epoll_modify", + "functionSimpleName" : "epoll_modify", + "functionSearchName" : "epoll_modify", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch. Now the value of {1} cannot be equal to {2}.}{{code{nev}}}{{code{nev}}}{0}}}}", + "eventDescription" : "Condition \"nev\", taking true branch. Now the value of \"nev\" cannot be equal to 0.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "cond_cannot_single", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "lineNumber" : 84, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{At condition {0}, the value of {1} cannot be equal to {2}.}{{code{nev}}}{{code{nev}}}{0}}}}", + "eventDescription" : "At condition \"nev\", the value of \"nev\" cannot be equal to 0.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "cannot_single", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "lineNumber" : 102, + "columnNumber" : 12, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{The condition {0} cannot be true.}{{code{!nev}}}}}}", + "eventDescription" : "The condition \"!nev\" cannot be true.", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "dead_error_condition", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "lineNumber" : 102, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Execution cannot reach this statement: {0}.}{{code{goto dec_egen;}}}}}}", + "eventDescription" : "Execution cannot reach this statement: \"goto dec_egen;\".", + "eventNumber" : 4, + "eventTreePosition" : "4", + "eventSet" : 0, + "eventTag" : "dead_error_line", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "lineNumber" : 103, + "columnNumber" : 9, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Control flow issues", + "categoryDescription" : "Control flow issues", + "cweCategory" : "561", + "weaknessIdCategory" : "208", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The indicated dead code may have performed some action; that action will never occur.", + "subcategoryShortDescription" : "Logically dead code", + "subcategoryLongDescription" : "Code can never be reached because of a logical contradiction" + } + }, + { + "mergeKey" : "e28dffa40f1576e095daab0b517a29af", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 3601, + "mainEventColumnNumber" : 7, + "properties" : {}, + "functionDisplayName" : "array_verify", + "functionMangledName" : "array_verify", + "functionHtmlDisplayName" : "array_verify", + "functionSimpleName" : "array_verify", + "functionSearchName" : "array_verify", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: active index mismatch\"}}}{{code{\"libev: active index mismatch\" , (((W)ws[cnt])->active == cnt + 1)}}}}}}", + "eventDescription" : "Part \"\"libev: active index mismatch\"\" of statement \"\"libev: active index mismatch\" , (((W)ws[cnt])->active == cnt + 1)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3601, + "columnNumber" : 7, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "6639476b304cc21630a89a76bbfe665d", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 3823, + "mainEventColumnNumber" : 15, + "properties" : {}, + "functionDisplayName" : "timers_reify", + "functionMangledName" : "timers_reify", + "functionHtmlDisplayName" : "timers_reify", + "functionSimpleName" : "timers_reify", + "functionSearchName" : "timers_reify", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: negative ev_timer repeat value found while processing timers\"}}}{{code{\"libev: negative ev_timer repeat value found while processing timers\" , (w->repeat > 0.)}}}}}}", + "eventDescription" : "Part \"\"libev: negative ev_timer repeat value found while processing timers\"\" of statement \"\"libev: negative ev_timer repeat value found while processing timers\" , (w->repeat > 0.)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3823, + "columnNumber" : 15, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "eba1888d8f337006f78cd28bdc6f6a21", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 3886, + "mainEventColumnNumber" : 15, + "properties" : {}, + "functionDisplayName" : "periodics_reify", + "functionMangledName" : "periodics_reify", + "functionHtmlDisplayName" : "periodics_reify", + "functionSimpleName" : "periodics_reify", + "functionSearchName" : "periodics_reify", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: ev_periodic reschedule callback returned time in the past\"}}}{{code{\"libev: ev_periodic reschedule callback returned time in the past\" , (((WT)w)->at >= loop->ev_rt_now)}}}}}}", + "eventDescription" : "Part \"\"libev: ev_periodic reschedule callback returned time in the past\"\" of statement \"\"libev: ev_periodic reschedule callback returned time in the past\" , (((WT)w)->at >= loop->ev_rt_now)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3886, + "columnNumber" : 15, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "6a810f4ac02dfa47914d9e5141f2a2d7", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4368, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "ev_io_stop", + "functionMangledName" : "ev_io_stop", + "functionHtmlDisplayName" : "ev_io_stop", + "functionSimpleName" : "ev_io_stop", + "functionSearchName" : "ev_io_stop", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: ev_io_stop called with illegal fd (must stay constant after start!)\"}}}{{code{\"libev: ev_io_stop called with illegal fd (must stay constant after start!)\" , (w->fd >= 0 && w->fd < loop->anfdmax)}}}}}}", + "eventDescription" : "Part \"\"libev: ev_io_stop called with illegal fd (must stay constant after start!)\"\" of statement \"\"libev: ev_io_stop called with illegal fd (must stay constant after start!)\" , (w->fd >= 0 && w->fd < loop->anfdmax)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4368, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "58132115ccf6fb55d90d902e85275e9b", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4392, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "ev_timer_start", + "functionMangledName" : "ev_timer_start", + "functionHtmlDisplayName" : "ev_timer_start", + "functionSimpleName" : "ev_timer_start", + "functionSearchName" : "ev_timer_start", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: ev_timer_start called with negative timer repeat value\"}}}{{code{\"libev: ev_timer_start called with negative timer repeat value\" , (w->repeat >= 0.)}}}}}}", + "eventDescription" : "Part \"\"libev: ev_timer_start called with negative timer repeat value\"\" of statement \"\"libev: ev_timer_start called with negative timer repeat value\" , (w->repeat >= 0.)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4392, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "241721c25f538757a87e3bed72e84236", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4421, + "mainEventColumnNumber" : 5, + "properties" : {}, + "functionDisplayName" : "ev_timer_stop", + "functionMangledName" : "ev_timer_stop", + "functionHtmlDisplayName" : "ev_timer_stop", + "functionSimpleName" : "ev_timer_stop", + "functionSearchName" : "ev_timer_stop", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: internal timer heap corruption\"}}}{{code{\"libev: internal timer heap corruption\" , (loop->timers[active].w == (WT)w)}}}}}}", + "eventDescription" : "Part \"\"libev: internal timer heap corruption\"\" of statement \"\"libev: internal timer heap corruption\" , (loop->timers[active].w == (WT)w)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4421, + "columnNumber" : 5, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "aa2e8c436b2d41d90a820d30edb5c556", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4490, + "mainEventColumnNumber" : 7, + "properties" : {}, + "functionDisplayName" : "ev_periodic_start", + "functionMangledName" : "ev_periodic_start", + "functionHtmlDisplayName" : "ev_periodic_start", + "functionSimpleName" : "ev_periodic_start", + "functionSearchName" : "ev_periodic_start", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: ev_periodic_start called with negative interval value\"}}}{{code{\"libev: ev_periodic_start called with negative interval value\" , (w->interval >= 0.)}}}}}}", + "eventDescription" : "Part \"\"libev: ev_periodic_start called with negative interval value\"\" of statement \"\"libev: ev_periodic_start called with negative interval value\" , (w->interval >= 0.)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4490, + "columnNumber" : 7, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "1e99fb754d42efd17bccad54376e375d", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4523, + "mainEventColumnNumber" : 5, + "properties" : {}, + "functionDisplayName" : "ev_periodic_stop", + "functionMangledName" : "ev_periodic_stop", + "functionHtmlDisplayName" : "ev_periodic_stop", + "functionSimpleName" : "ev_periodic_stop", + "functionSearchName" : "ev_periodic_stop", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: internal periodic heap corruption\"}}}{{code{\"libev: internal periodic heap corruption\" , (loop->periodics[active].w == (WT)w)}}}}}}", + "eventDescription" : "Part \"\"libev: internal periodic heap corruption\"\" of statement \"\"libev: internal periodic heap corruption\" , (loop->periodics[active].w == (WT)w)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4523, + "columnNumber" : 5, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "18d9e05e6377c54d074fdca05a22f5a5", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4684, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "ev_child_start", + "functionMangledName" : "ev_child_start", + "functionHtmlDisplayName" : "ev_child_start", + "functionSimpleName" : "ev_child_start", + "functionSearchName" : "ev_child_start", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: child watchers are only supported in the default loop\"}}}{{code{\"libev: child watchers are only supported in the default loop\" , (loop == ev_default_loop_ptr)}}}}}}", + "eventDescription" : "Part \"\"libev: child watchers are only supported in the default loop\"\" of statement \"\"libev: child watchers are only supported in the default loop\" , (loop == ev_default_loop_ptr)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4684, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "815f566ee625dce0445f7d6b484a6a02", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 5271, + "mainEventColumnNumber" : 5, + "properties" : {}, + "functionDisplayName" : "ev_embed_start", + "functionMangledName" : "ev_embed_start", + "functionHtmlDisplayName" : "ev_embed_start", + "functionSimpleName" : "ev_embed_start", + "functionSearchName" : "ev_embed_start", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: loop to be embedded is not embeddable\"}}}{{code{\"libev: loop to be embedded is not embeddable\" , (loop->backend & ev_embeddable_backends())}}}}}}", + "eventDescription" : "Part \"\"libev: loop to be embedded is not embeddable\"\" of statement \"\"libev: loop to be embedded is not embeddable\" , (loop->backend & ev_embeddable_backends())\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 5271, + "columnNumber" : 5, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "6d647386e1d3b17a80bd5aff9f9ec94e", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "mainEventLineNumber" : 134, + "mainEventColumnNumber" : 5, + "properties" : {}, + "functionDisplayName" : "epoll_modify", + "functionMangledName" : "epoll_modify", + "functionHtmlDisplayName" : "epoll_modify", + "functionSimpleName" : "epoll_modify", + "functionSearchName" : "epoll_modify", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: I/O watcher with invalid fd found in epoll_ctl\"}}}{{code{\"libev: I/O watcher with invalid fd found in epoll_ctl\" , (*__errno_location() != 9 && *__errno_location() != 40 && *__errno_location() != 22)}}}}}}", + "eventDescription" : "Part \"\"libev: I/O watcher with invalid fd found in epoll_ctl\"\" of statement \"\"libev: I/O watcher with invalid fd found in epoll_ctl\" , (*__errno_location() != 9 && *__errno_location() != 40 && *__errno_location() != 22)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "lineNumber" : 134, + "columnNumber" : 5, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "4edeb9b0402b9ea316b33761ec2a2750", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "mainEventLineNumber" : 240, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "iouring_enter", + "functionMangledName" : "iouring_enter", + "functionHtmlDisplayName" : "iouring_enter", + "functionSimpleName" : "iouring_enter", + "functionSearchName" : "iouring_enter", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: io_uring_enter did not consume all sqes\"}}}{{code{\"libev: io_uring_enter did not consume all sqes\" , (res < 0 || res == loop->iouring_to_submit)}}}}}}", + "eventDescription" : "Part \"\"libev: io_uring_enter did not consume all sqes\"\" of statement \"\"libev: io_uring_enter did not consume all sqes\" , (res < 0 || res == loop->iouring_to_submit)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 240, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "59b4895f4454638ba016aa6262a09a4b", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "mainEventLineNumber" : 428, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "iouring_fork", + "functionMangledName" : "iouring_fork", + "functionHtmlDisplayName" : "iouring_fork", + "functionSimpleName" : "iouring_fork", + "functionSearchName" : "iouring_fork", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{loop}}}{{code{loop , (&loop->iouring_tfd_w)}}}}}}", + "eventDescription" : "Part \"loop\" of statement \"loop , (&loop->iouring_tfd_w)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 428, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "1b947a3d3052a7c08d256d461555d953", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "mainEventLineNumber" : 489, + "mainEventColumnNumber" : 10, + "properties" : {}, + "functionDisplayName" : "iouring_tfd_update", + "functionMangledName" : "iouring_tfd_update", + "functionHtmlDisplayName" : "iouring_tfd_update", + "functionSimpleName" : "iouring_tfd_update", + "functionSearchName" : "iouring_tfd_update", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: iouring timerfd_settime failed\"}}}{{code{\"libev: iouring timerfd_settime failed\" , 0}}}}}}", + "eventDescription" : "Part \"\"libev: iouring timerfd_settime failed\"\" of statement \"\"libev: iouring timerfd_settime failed\" , 0\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 489, + "columnNumber" : 10, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "807dfeb4df166e68a4435ebe4459452c", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 3587, + "mainEventColumnNumber" : 7, + "properties" : {}, + "functionDisplayName" : "verify_heap", + "functionMangledName" : "verify_heap", + "functionHtmlDisplayName" : "verify_heap", + "functionSimpleName" : "verify_heap", + "functionSearchName" : "verify_heap", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: active index mismatch in heap\"}}}{{code{\"libev: active index mismatch in heap\" , (((W)heap[i].w)->active == i)}}}}}}", + "eventDescription" : "Part \"\"libev: active index mismatch in heap\"\" of statement \"\"libev: active index mismatch in heap\" , (((W)heap[i].w)->active == i)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3587, + "columnNumber" : 7, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: heap condition violated\"}}}{{code{\"libev: heap condition violated\" , (i == 3 || heap[(i - 3 - 1) / 4 + 3].at <= heap[i].at)}}}}}}", + "eventDescription" : "Part \"\"libev: heap condition violated\"\" of statement \"\"libev: heap condition violated\" , (i == 3 || heap[(i - 3 - 1) / 4 + 3].at <= heap[i].at)\" has no effect due to the comma.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3588, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: heap condition violated\"}}}{{code{\"libev: heap condition violated\" , (i == 4 - 1 || heap[(i - 3 - 1) / 4 + 3].at <= heap[i].at)}}}}}}", + "eventDescription" : "Part \"\"libev: heap condition violated\"\" of statement \"\"libev: heap condition violated\" , (i == 4 - 1 || heap[(i - 3 - 1) / 4 + 3].at <= heap[i].at)\" has no effect due to the comma.", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3588, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: heap at cache mismatch\"}}}{{code{\"libev: heap at cache mismatch\" , (heap[i].at == ((WT)heap[i].w)->at)}}}}}}", + "eventDescription" : "Part \"\"libev: heap at cache mismatch\"\" of statement \"\"libev: heap at cache mismatch\" , (heap[i].at == ((WT)heap[i].w)->at)\" has no effect due to the comma.", + "eventNumber" : 4, + "eventTreePosition" : "4", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3589, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "8e1b58f8e0b1571a2964855300bea473", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 3573, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "verify_watcher", + "functionMangledName" : "verify_watcher", + "functionHtmlDisplayName" : "verify_watcher", + "functionSimpleName" : "verify_watcher", + "functionSearchName" : "verify_watcher", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: watcher has invalid priority\"}}}{{code{\"libev: watcher has invalid priority\" , (((W)w)->priority - ((0x7f & 4) ? -2 : 0) >= 0 && ((W)w)->priority - -2 < 5)}}}}}}", + "eventDescription" : "Part \"\"libev: watcher has invalid priority\"\" of statement \"\"libev: watcher has invalid priority\" , (((W)w)->priority - ((0x7f & 4) ? -2 : 0) >= 0 && ((W)w)->priority - -2 < 5)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3573, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: watcher has invalid priority\"}}}{{code{\"libev: watcher has invalid priority\" , (((W)w)->priority - -2 >= 0 && ((W)w)->priority - -2 < 5)}}}}}}", + "eventDescription" : "Part \"\"libev: watcher has invalid priority\"\" of statement \"\"libev: watcher has invalid priority\" , (((W)w)->priority - -2 >= 0 && ((W)w)->priority - -2 < 5)\" has no effect due to the comma.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3573, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: pending watcher not on pending queue\"}}}{{code{\"libev: pending watcher not on pending queue\" , (loop->pendings[((W)w)->priority - ((0x7f & 4) ? -2 : 0)][w->pending - 1].w == w)}}}}}}", + "eventDescription" : "Part \"\"libev: pending watcher not on pending queue\"\" of statement \"\"libev: pending watcher not on pending queue\" , (loop->pendings[((W)w)->priority - ((0x7f & 4) ? -2 : 0)][w->pending - 1].w == w)\" has no effect due to the comma.", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3576, + "columnNumber" : 5, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: pending watcher not on pending queue\"}}}{{code{\"libev: pending watcher not on pending queue\" , (loop->pendings[((W)w)->priority - -2][w->pending - 1].w == w)}}}}}}", + "eventDescription" : "Part \"\"libev: pending watcher not on pending queue\"\" of statement \"\"libev: pending watcher not on pending queue\" , (loop->pendings[((W)w)->priority - -2][w->pending - 1].w == w)\" has no effect due to the comma.", + "eventNumber" : 4, + "eventTreePosition" : "4", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3576, + "columnNumber" : 5, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "8674c6d432bd39f5c75ac458bb90c561", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4562, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "ev_signal_start", + "functionMangledName" : "ev_signal_start", + "functionHtmlDisplayName" : "ev_signal_start", + "functionSimpleName" : "ev_signal_start", + "functionSearchName" : "ev_signal_start", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: ev_signal_start called with illegal signal number\"}}}{{code{\"libev: ev_signal_start called with illegal signal number\" , (w->signum > 0 && w->signum < 65)}}}}}}", + "eventDescription" : "Part \"\"libev: ev_signal_start called with illegal signal number\"\" of statement \"\"libev: ev_signal_start called with illegal signal number\" , (w->signum > 0 && w->signum < 65)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4562, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: a signal must not be attached to two different loops\"}}}{{code{\"libev: a signal must not be attached to two different loops\" , (!signals[w->signum - 1].loop || signals[w->signum - 1].loop == loop)}}}}}}", + "eventDescription" : "Part \"\"libev: a signal must not be attached to two different loops\"\" of statement \"\"libev: a signal must not be attached to two different loops\" , (!signals[w->signum - 1].loop || signals[w->signum - 1].loop == loop)\" has no effect due to the comma.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4565, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "f6c9e00e3f47ba81c9eebf48dc64563e", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_poll.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_poll.c", + "mainEventLineNumber" : 113, + "mainEventColumnNumber" : 9, + "properties" : {}, + "functionDisplayName" : "poll_poll", + "functionMangledName" : "poll_poll", + "functionHtmlDisplayName" : "poll_poll", + "functionSimpleName" : "poll_poll", + "functionSearchName" : "poll_poll", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: poll returned illegal result, broken BSD kernel?\"}}}{{code{\"libev: poll returned illegal result, broken BSD kernel?\" , (p < loop->polls + loop->pollcnt)}}}}}}", + "eventDescription" : "Part \"\"libev: poll returned illegal result, broken BSD kernel?\"\" of statement \"\"libev: poll returned illegal result, broken BSD kernel?\" , (p < loop->polls + loop->pollcnt)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_poll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_poll.c", + "lineNumber" : 113, + "columnNumber" : 9, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: poll found invalid fd in poll set\"}}}{{code{\"libev: poll found invalid fd in poll set\" , 0}}}}}}", + "eventDescription" : "Part \"\"libev: poll found invalid fd in poll set\"\" of statement \"\"libev: poll found invalid fd in poll set\" , 0\" has no effect due to the comma.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_poll.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_poll.c", + "lineNumber" : 121, + "columnNumber" : 17, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "63bd8b5c994e5edcc2dd7849f7f40a79", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4339, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "ev_io_start", + "functionMangledName" : "ev_io_start", + "functionHtmlDisplayName" : "ev_io_start", + "functionSimpleName" : "ev_io_start", + "functionSearchName" : "ev_io_start", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: ev_io_start called with negative fd\"}}}{{code{\"libev: ev_io_start called with negative fd\" , (fd >= 0)}}}}}}", + "eventDescription" : "Part \"\"libev: ev_io_start called with negative fd\"\" of statement \"\"libev: ev_io_start called with negative fd\" , (fd >= 0)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4339, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: ev_io_start called with illegal event mask\"}}}{{code{\"libev: ev_io_start called with illegal event mask\" , (!(w->events & 0xffffffffffffff7c))}}}}}}", + "eventDescription" : "Part \"\"libev: ev_io_start called with illegal event mask\"\" of statement \"\"libev: ev_io_start called with illegal event mask\" , (!(w->events & 0xffffffffffffff7c))\" has no effect due to the comma.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4340, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: ev_io_start called with illegal event mask\"}}}{{code{\"libev: ev_io_start called with illegal event mask\" , (!(w->events & ~(EV__IOFDSET | EV_READ | EV_WRITE)))}}}}}}", + "eventDescription" : "Part \"\"libev: ev_io_start called with illegal event mask\"\" of statement \"\"libev: ev_io_start called with illegal event mask\" , (!(w->events & ~(EV__IOFDSET | EV_READ | EV_WRITE)))\" has no effect due to the comma.", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4340, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: ev_io_start called with corrupted watcher\"}}}{{code{\"libev: ev_io_start called with corrupted watcher\" , (((WL)w)->next != (WL)w)}}}}}}", + "eventDescription" : "Part \"\"libev: ev_io_start called with corrupted watcher\"\" of statement \"\"libev: ev_io_start called with corrupted watcher\" , (((WL)w)->next != (WL)w)\" has no effect due to the comma.", + "eventNumber" : 4, + "eventTreePosition" : "4", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4352, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "2879687f1bb18bf4546513cdb4e1d24c", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 3619, + "mainEventColumnNumber" : 5, + "properties" : {}, + "functionDisplayName" : "ev_verify", + "functionMangledName" : "ev_verify", + "functionHtmlDisplayName" : "ev_verify", + "functionSimpleName" : "ev_verify", + "functionSearchName" : "ev_verify", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: negative fd in fdchanges\"}}}{{code{\"libev: negative fd in fdchanges\" , (loop->fdchanges[i] >= 0)}}}}}}", + "eventDescription" : "Part \"\"libev: negative fd in fdchanges\"\" of statement \"\"libev: negative fd in fdchanges\" , (loop->fdchanges[i] >= 0)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3619, + "columnNumber" : 5, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: io watcher list contains a loop\"}}}{{code{\"libev: io watcher list contains a loop\" , (w != w2)}}}}}}", + "eventDescription" : "Part \"\"libev: io watcher list contains a loop\"\" of statement \"\"libev: io watcher list contains a loop\" , (w != w2)\" has no effect due to the comma.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3632, + "columnNumber" : 15, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: inactive fd watcher on anfd list\"}}}{{code{\"libev: inactive fd watcher on anfd list\" , (((W)w)->active == 1)}}}}}}", + "eventDescription" : "Part \"\"libev: inactive fd watcher on anfd list\"\" of statement \"\"libev: inactive fd watcher on anfd list\" , (((W)w)->active == 1)\" has no effect due to the comma.", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3636, + "columnNumber" : 11, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: fd mismatch between watcher and anfd\"}}}{{code{\"libev: fd mismatch between watcher and anfd\" , (((ev_io *)w)->fd == i)}}}}}}", + "eventDescription" : "Part \"\"libev: fd mismatch between watcher and anfd\"\" of statement \"\"libev: fd mismatch between watcher and anfd\" , (((ev_io *)w)->fd == i)\" has no effect due to the comma.", + "eventNumber" : 4, + "eventTreePosition" : "4", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 3637, + "columnNumber" : 11, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "c33774c0a315fee66bf7d16d2c4e3a24", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "mainEventLineNumber" : 505, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "iouring_process_cqe", + "functionMangledName" : "iouring_process_cqe", + "functionHtmlDisplayName" : "iouring_process_cqe", + "functionSimpleName" : "iouring_process_cqe", + "functionSearchName" : "iouring_process_cqe", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: io_uring fd must be in-bounds\"}}}{{code{\"libev: io_uring fd must be in-bounds\" , (fd >= 0 && fd < loop->anfdmax)}}}}}}", + "eventDescription" : "Part \"\"libev: io_uring fd must be in-bounds\"\" of statement \"\"libev: io_uring fd must be in-bounds\" , (fd >= 0 && fd < loop->anfdmax)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 505, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: event loop rejected bad fd\"}}}{{code{\"libev: event loop rejected bad fd\" , (res != -9)}}}}}}", + "eventDescription" : "Part \"\"libev: event loop rejected bad fd\"\" of statement \"\"libev: event loop rejected bad fd\" , (res != -9)\" has no effect due to the comma.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 525, + "columnNumber" : 11, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "17a2a9f45b3fead12a32876172a1e886", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "NO_EFFECT", + "subcategory" : "extra_comma", + "type" : "no_effect", + "subtype" : "extra_comma", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4027, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "ev_run", + "functionMangledName" : "ev_run", + "functionHtmlDisplayName" : "ev_run", + "functionSimpleName" : "ev_run", + "functionSearchName" : "ev_run", + "localStatus" : null, + "ordered" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: ev_loop recursion during release detected\"}}}{{code{\"libev: ev_loop recursion during release detected\" , (loop->loop_done != 128)}}}}}}", + "eventDescription" : "Part \"\"libev: ev_loop recursion during release detected\"\" of statement \"\"libev: ev_loop recursion during release detected\" , (loop->loop_done != 128)\" has no effect due to the comma.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4027, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Part {0} of statement {1} has no effect due to the comma.}{{code{\"libev: pipe_w not active, but pipe not written\"}}}{{code{\"libev: pipe_w not active, but pipe not written\" , (0 + ((ev_watcher *)(void *)&loop->pipe_w)->active)}}}}}}", + "eventDescription" : "Part \"\"libev: pipe_w not active, but pipe not written\"\" of statement \"\"libev: pipe_w not active, but pipe not written\" , (0 + ((ev_watcher *)(void *)&loop->pipe_w)->active)\" has no effect due to the comma.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "extra_comma", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4165, + "columnNumber" : 13, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Incorrect expression", + "categoryDescription" : "Incorrect expression", + "cweCategory" : "480", + "weaknessIdCategory" : "965", + "issueKinds" : [ + "QUALITY" + ], + "eventSetCaptions" : [], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "The left hand side of the comma will be evaluated and then the value discarded.", + "subcategoryShortDescription" : "Misused comma operator", + "subcategoryLongDescription" : "Comma operator has a left sub-expression with no side-effects" + } + }, + { + "mergeKey" : "63545755ea8551b1e7ddbd9d7d5894f5", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "TAINTED_SCALAR", + "subcategory" : "loop_bound", + "type" : "tainted_scalar", + "subtype" : "loop_bound", + "code-language" : "c/c++", + "extra" : "", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "mainEventLineNumber" : 4864, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "infy_cb", + "functionMangledName" : "infy_cb", + "functionHtmlDisplayName" : "infy_cb", + "functionSimpleName" : "infy_cb", + "functionSearchName" : "infy_cb", + "localStatus" : null, + "ordered" : true, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Calling function {0} taints argument {1}.}{{code{read}}}{{code{*buf}}}}{t{ [Note: The source code implementation of the function has been overridden by a builtin model.]}}}}", + "eventDescription" : "Calling function \"read\" taints argument \"*buf\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "tainted_argument", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4862, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{ofs < len}}}}}}", + "eventDescription" : "Condition \"ofs < len\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4864, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Assigning: {0} = {1}. Both are now tainted.}{{code{ev}}}{{code{(struct inotify_event *)(buf + ofs)}}}}}}", + "eventDescription" : "Assigning: \"ev\" = \"(struct inotify_event *)(buf + ofs)\". Both are now tainted.", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "var_assign_var", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4866, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Compound assignment involving tainted variable {0} to variable {1} taints {2}.}{{code{16UL + ev->len}}}{{code{ofs}}}{{code{ofs}}}}}}", + "eventDescription" : "Compound assignment involving tainted variable \"16UL + ev->len\" to variable \"ofs\" taints \"ofs\".", + "eventNumber" : 4, + "eventTreePosition" : "4", + "eventSet" : 0, + "eventTag" : "var_assign_var", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4868, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Jumping back to the beginning of the loop.}}}}", + "eventDescription" : "Jumping back to the beginning of the loop.", + "eventNumber" : 5, + "eventTreePosition" : "5", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4869, + "columnNumber" : 5, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Using tainted variable {0} as a loop boundary.}{{code{ofs}}}}}}", + "eventDescription" : "Using tainted variable \"ofs\" as a loop boundary.", + "eventNumber" : 6, + "eventTreePosition" : "6", + "eventSet" : 0, + "eventTag" : "tainted_data", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4864, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.}}}}", + "eventDescription" : "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "eventNumber" : 7, + "eventTreePosition" : "7", + "eventSet" : 0, + "eventTag" : "remediation", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev.c", + "lineNumber" : 4864, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : true, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Insecure data handling", + "categoryDescription" : "Insecure data handling", + "cweCategory" : "606", + "weaknessIdCategory" : "1073", + "issueKinds" : [ + "QUALITY", + "SECURITY" + ], + "eventSetCaptions" : [ + "Tainted data flows to a taint sink", + "Statements that contribute to flow of data from source to sink" + ], + "impact" : "Medium", + "impactDescription" : "Medium", + "subcategoryLocalEffect" : "An attacker could control the number of times the loop iterates.", + "subcategoryShortDescription" : "Untrusted loop bound", + "subcategoryLongDescription" : "An unscrutinized value from an untrusted source used as a loop bound" + } + }, + { + "mergeKey" : "4840bcc0d441f177d1d3c7bc7ba700f3", + "occurrenceCountForMK" : 2, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "USE_AFTER_FREE", + "subcategory" : "none", + "type" : "use_after_free", + "subtype" : "pointer", + "code-language" : "c/c++", + "extra" : "iouring_sq_ring,loop", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "mainEventLineNumber" : 450, + "mainEventColumnNumber" : 7, + "properties" : {}, + "functionDisplayName" : "iouring_modify", + "functionMangledName" : "iouring_modify", + "functionHtmlDisplayName" : "iouring_modify", + "functionSimpleName" : "iouring_modify", + "functionSearchName" : "iouring_modify", + "localStatus" : null, + "ordered" : true, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{oev}}}}}}", + "eventDescription" : "Condition \"oev\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 437, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees {1}.}{{code{iouring_sqe_get}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_sqe_get\" frees \"loop->iouring_sq_ring\".", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 440, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))}}}}}}", + "eventDescription" : "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "2.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 263, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{res >= 0}}}}}}", + "eventDescription" : "Condition \"res >= 0\", taking false branch.", + "eventNumber" : 2, + "eventTreePosition" : "2.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 274, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Jumping back to the beginning of the loop.}}}}", + "eventDescription" : "Jumping back to the beginning of the loop.", + "eventNumber" : 3, + "eventTreePosition" : "2.3", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 282, + "columnNumber" : 5, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))}}}}}}", + "eventDescription" : "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "eventNumber" : 4, + "eventTreePosition" : "2.4", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 263, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{res >= 0}}}}}}", + "eventDescription" : "Condition \"res >= 0\", taking false branch.", + "eventNumber" : 5, + "eventTreePosition" : "2.5", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 274, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_poll}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_poll\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 6, + "eventTreePosition" : "2.6", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 280, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{iouring_handle_cq(loop)}}}}}}", + "eventDescription" : "Condition \"iouring_handle_cq(loop)\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "2.6.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 641, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->fdchangecnt}}}}}}", + "eventDescription" : "Condition \"loop->fdchangecnt\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "2.6.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 641, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Falling through to end of if statement.}}}}", + "eventDescription" : "Falling through to end of if statement.", + "eventNumber" : 3, + "eventTreePosition" : "2.6.3", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 642, + "columnNumber" : 31, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{timeout != 0.}}}}}}", + "eventDescription" : "Condition \"timeout != 0.\", taking false branch.", + "eventNumber" : 4, + "eventTreePosition" : "2.6.4", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 648, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->iouring_to_submit}}}}}}", + "eventDescription" : "Condition \"loop->iouring_to_submit\", taking true branch.", + "eventNumber" : 5, + "eventTreePosition" : "2.6.5", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 648, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{!!(res < 0)}}}}}}", + "eventDescription" : "Condition \"!!(res < 0)\", taking false branch.", + "eventNumber" : 6, + "eventTreePosition" : "2.6.6", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 652, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_handle_cq}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_handle_cq\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 7, + "eventTreePosition" : "2.6.7", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 660, + "columnNumber" : 9, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{head == tail}}}}}}", + "eventDescription" : "Condition \"head == tail\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "2.6.7.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 611, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))}}}}}}", + "eventDescription" : "Condition \"!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "2.6.7.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 615, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_overflow}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_overflow\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 3, + "eventTreePosition" : "2.6.7.3", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 617, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{!loop->iouring_max_entries}}}}}}", + "eventDescription" : "Condition \"!loop->iouring_max_entries\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "2.6.7.3.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 571, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_fork}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_fork\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 2, + "eventTreePosition" : "2.6.7.3.2", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 574, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_internal_destroy}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_internal_destroy\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 1, + "eventTreePosition" : "2.6.7.3.2.1", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 420, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->iouring_sq_ring != (void *)0xffffffffffffffff}}}}}}", + "eventDescription" : "Condition \"loop->iouring_sq_ring != (void *)0xffffffffffffffff\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "2.6.7.3.2.1.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 322, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{munmap}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"munmap\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 2, + "eventTreePosition" : "2.6.7.3.2.1.2", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 322, + "columnNumber" : 38, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Calling {0} dereferences freed pointer {1}.}{{code{iouring_sqe_submit}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "Calling \"iouring_sqe_submit\" dereferences freed pointer \"loop->iouring_sq_ring\".", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "deref_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 450, + "columnNumber" : 7, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Directly dereferencing parameter {0}.}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "Directly dereferencing parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 1, + "eventTreePosition" : "3.1", + "eventSet" : 0, + "eventTag" : "deref_parm", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 295, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ] + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Memory - illegal accesses", + "categoryDescription" : "Memory - illegal accesses", + "cweCategory" : "416", + "weaknessIdCategory" : "908", + "issueKinds" : [ + "QUALITY", + "SECURITY" + ], + "eventSetCaptions" : [], + "impact" : "High", + "impactDescription" : "High", + "subcategoryLocalEffect" : "This could cause an immediate crash or incorrect values might be read subsequently resulting in incorrect computations.", + "subcategoryShortDescription" : "Use after free", + "subcategoryLongDescription" : "A pointer to freed memory is dereferenced, used as a function argument, or otherwise used" + } + }, + { + "mergeKey" : "dd7cea15ef54c17c70b8c3657d024268", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "USE_AFTER_FREE", + "subcategory" : "deref_read_after_free", + "type" : "use_after_free", + "subtype" : "deref_read_after_free", + "code-language" : "c/c++", + "extra" : "iouring_sq_ring,loop", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "mainEventLineNumber" : 261, + "mainEventColumnNumber" : 7, + "properties" : {}, + "functionDisplayName" : "iouring_sqe_get", + "functionMangledName" : "iouring_sqe_get", + "functionHtmlDisplayName" : "iouring_sqe_get", + "functionSimpleName" : "iouring_sqe_get", + "functionSearchName" : "iouring_sqe_get", + "localStatus" : null, + "ordered" : true, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))}}}}}}", + "eventDescription" : "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 263, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{res >= 0}}}}}}", + "eventDescription" : "Condition \"res >= 0\", taking false branch.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 274, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees {1}.}{{code{iouring_poll}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_poll\" frees \"loop->iouring_sq_ring\".", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 280, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{iouring_handle_cq(loop)}}}}}}", + "eventDescription" : "Condition \"iouring_handle_cq(loop)\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 641, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->fdchangecnt}}}}}}", + "eventDescription" : "Condition \"loop->fdchangecnt\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "3.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 641, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Falling through to end of if statement.}}}}", + "eventDescription" : "Falling through to end of if statement.", + "eventNumber" : 3, + "eventTreePosition" : "3.3", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 642, + "columnNumber" : 31, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{timeout != 0.}}}}}}", + "eventDescription" : "Condition \"timeout != 0.\", taking false branch.", + "eventNumber" : 4, + "eventTreePosition" : "3.4", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 648, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->iouring_to_submit}}}}}}", + "eventDescription" : "Condition \"loop->iouring_to_submit\", taking true branch.", + "eventNumber" : 5, + "eventTreePosition" : "3.5", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 648, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{!!(res < 0)}}}}}}", + "eventDescription" : "Condition \"!!(res < 0)\", taking false branch.", + "eventNumber" : 6, + "eventTreePosition" : "3.6", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 652, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_handle_cq}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_handle_cq\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 7, + "eventTreePosition" : "3.7", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 660, + "columnNumber" : 9, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{head == tail}}}}}}", + "eventDescription" : "Condition \"head == tail\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.7.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 611, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))}}}}}}", + "eventDescription" : "Condition \"!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "3.7.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 615, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_overflow}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_overflow\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 3, + "eventTreePosition" : "3.7.3", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 617, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{!loop->iouring_max_entries}}}}}}", + "eventDescription" : "Condition \"!loop->iouring_max_entries\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.7.3.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 571, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_fork}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_fork\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 2, + "eventTreePosition" : "3.7.3.2", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 574, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_internal_destroy}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_internal_destroy\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 1, + "eventTreePosition" : "3.7.3.2.1", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 420, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->iouring_sq_ring != (void *)0xffffffffffffffff}}}}}}", + "eventDescription" : "Condition \"loop->iouring_sq_ring != (void *)0xffffffffffffffff\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.7.3.2.1.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 322, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{munmap}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"munmap\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 2, + "eventTreePosition" : "3.7.3.2.1.2", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 322, + "columnNumber" : 38, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Jumping back to the beginning of the loop.}}}}", + "eventDescription" : "Jumping back to the beginning of the loop.", + "eventNumber" : 4, + "eventTreePosition" : "4", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 282, + "columnNumber" : 5, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Using freed pointer {0}.}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "Using freed pointer \"loop->iouring_sq_ring\".", + "eventNumber" : 5, + "eventTreePosition" : "5", + "eventSet" : 0, + "eventTag" : "use_after_free", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 261, + "columnNumber" : 7, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Memory - illegal accesses", + "categoryDescription" : "Memory - illegal accesses", + "cweCategory" : "416", + "weaknessIdCategory" : "908", + "issueKinds" : [ + "QUALITY", + "SECURITY" + ], + "eventSetCaptions" : [], + "impact" : "High", + "impactDescription" : "High", + "subcategoryLocalEffect" : "Incorrect values may be read from freed memory, causing incorrect computations.", + "subcategoryShortDescription" : "Read from pointer after free", + "subcategoryLongDescription" : "Reads target of a freed pointer" + } + }, + { + "mergeKey" : "857c51c094c37d4188f7a7c8673fa688", + "occurrenceCountForMK" : 1, + "occurrenceNumberInMK" : 1, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "USE_AFTER_FREE", + "subcategory" : "none", + "type" : "use_after_free", + "subtype" : "pointer", + "code-language" : "c/c++", + "extra" : "iouring_sqes,loop", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "mainEventLineNumber" : 286, + "mainEventColumnNumber" : 3, + "properties" : {}, + "functionDisplayName" : "iouring_sqe_get", + "functionMangledName" : "iouring_sqe_get", + "functionHtmlDisplayName" : "iouring_sqe_get", + "functionSimpleName" : "iouring_sqe_get", + "functionSearchName" : "iouring_sqe_get", + "localStatus" : null, + "ordered" : true, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))}}}}}}", + "eventDescription" : "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 263, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{res >= 0}}}}}}", + "eventDescription" : "Condition \"res >= 0\", taking false branch.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 274, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees {1}.}{{code{iouring_poll}}}{{code{loop->iouring_sqes}}}}}}", + "eventDescription" : "\"iouring_poll\" frees \"loop->iouring_sqes\".", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 280, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{iouring_handle_cq(loop)}}}}}}", + "eventDescription" : "Condition \"iouring_handle_cq(loop)\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 641, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->fdchangecnt}}}}}}", + "eventDescription" : "Condition \"loop->fdchangecnt\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "3.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 641, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Falling through to end of if statement.}}}}", + "eventDescription" : "Falling through to end of if statement.", + "eventNumber" : 3, + "eventTreePosition" : "3.3", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 642, + "columnNumber" : 31, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{timeout != 0.}}}}}}", + "eventDescription" : "Condition \"timeout != 0.\", taking false branch.", + "eventNumber" : 4, + "eventTreePosition" : "3.4", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 648, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->iouring_to_submit}}}}}}", + "eventDescription" : "Condition \"loop->iouring_to_submit\", taking true branch.", + "eventNumber" : 5, + "eventTreePosition" : "3.5", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 648, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{!!(res < 0)}}}}}}", + "eventDescription" : "Condition \"!!(res < 0)\", taking false branch.", + "eventNumber" : 6, + "eventTreePosition" : "3.6", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 652, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_handle_cq}}}{{code{loop->iouring_sqes}}}}}}", + "eventDescription" : "\"iouring_handle_cq\" frees parameter \"loop->iouring_sqes\".", + "eventNumber" : 7, + "eventTreePosition" : "3.7", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 660, + "columnNumber" : 9, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{head == tail}}}}}}", + "eventDescription" : "Condition \"head == tail\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.7.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 611, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))}}}}}}", + "eventDescription" : "Condition \"!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "3.7.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 615, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_overflow}}}{{code{loop->iouring_sqes}}}}}}", + "eventDescription" : "\"iouring_overflow\" frees parameter \"loop->iouring_sqes\".", + "eventNumber" : 3, + "eventTreePosition" : "3.7.3", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 617, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{!loop->iouring_max_entries}}}}}}", + "eventDescription" : "Condition \"!loop->iouring_max_entries\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.7.3.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 571, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_fork}}}{{code{loop->iouring_sqes}}}}}}", + "eventDescription" : "\"iouring_fork\" frees parameter \"loop->iouring_sqes\".", + "eventNumber" : 2, + "eventTreePosition" : "3.7.3.2", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 574, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_internal_destroy}}}{{code{loop->iouring_sqes}}}}}}", + "eventDescription" : "\"iouring_internal_destroy\" frees parameter \"loop->iouring_sqes\".", + "eventNumber" : 1, + "eventTreePosition" : "3.7.3.2.1", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 420, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->iouring_sq_ring != (void *)0xffffffffffffffff}}}}}}", + "eventDescription" : "Condition \"loop->iouring_sq_ring != (void *)0xffffffffffffffff\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.7.3.2.1.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 322, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->iouring_cq_ring != (void *)0xffffffffffffffff}}}}}}", + "eventDescription" : "Condition \"loop->iouring_cq_ring != (void *)0xffffffffffffffff\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "3.7.3.2.1.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 323, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->iouring_sqes != (void *)0xffffffffffffffff}}}}}}", + "eventDescription" : "Condition \"loop->iouring_sqes != (void *)0xffffffffffffffff\", taking true branch.", + "eventNumber" : 3, + "eventTreePosition" : "3.7.3.2.1.3", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 324, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{munmap}}}{{code{loop->iouring_sqes}}}}}}", + "eventDescription" : "\"munmap\" frees parameter \"loop->iouring_sqes\".", + "eventNumber" : 4, + "eventTreePosition" : "3.7.3.2.1.4", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 324, + "columnNumber" : 38, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Jumping back to the beginning of the loop.}}}}", + "eventDescription" : "Jumping back to the beginning of the loop.", + "eventNumber" : 4, + "eventTreePosition" : "4", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 282, + "columnNumber" : 5, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))}}}}}}", + "eventDescription" : "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking true branch.", + "eventNumber" : 5, + "eventTreePosition" : "5", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 263, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Breaking from loop.}}}}", + "eventDescription" : "Breaking from loop.", + "eventNumber" : 6, + "eventTreePosition" : "6", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 264, + "columnNumber" : 9, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Using freed pointer {0}.}{{code{loop->iouring_sqes}}}}}}", + "eventDescription" : "Using freed pointer \"loop->iouring_sqes\".", + "eventNumber" : 7, + "eventTreePosition" : "7", + "eventSet" : 0, + "eventTag" : "use_after_free", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 286, + "columnNumber" : 3, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Memory - illegal accesses", + "categoryDescription" : "Memory - illegal accesses", + "cweCategory" : "416", + "weaknessIdCategory" : "908", + "issueKinds" : [ + "QUALITY", + "SECURITY" + ], + "eventSetCaptions" : [], + "impact" : "High", + "impactDescription" : "High", + "subcategoryLocalEffect" : "This could cause an immediate crash or incorrect values might be read subsequently resulting in incorrect computations.", + "subcategoryShortDescription" : "Use after free", + "subcategoryLongDescription" : "A pointer to freed memory is dereferenced, used as a function argument, or otherwise used" + } + }, + { + "mergeKey" : "4840bcc0d441f177d1d3c7bc7ba700f3", + "occurrenceCountForMK" : 2, + "occurrenceNumberInMK" : 2, + "referenceOccurrenceCountForMK" : null, + "checkerName" : "USE_AFTER_FREE", + "subcategory" : "none", + "type" : "use_after_free", + "subtype" : "pointer", + "code-language" : "c/c++", + "extra" : "iouring_sq_ring,loop", + "domain" : "STATIC_C", + "language" : "C", + "mainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedMainEventFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "mainEventLineNumber" : 466, + "mainEventColumnNumber" : 7, + "properties" : {}, + "functionDisplayName" : "iouring_modify", + "functionMangledName" : "iouring_modify", + "functionHtmlDisplayName" : "iouring_modify", + "functionSimpleName" : "iouring_modify", + "functionSearchName" : "iouring_modify", + "localStatus" : null, + "ordered" : true, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{oev}}}}}}", + "eventDescription" : "Condition \"oev\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 437, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{nev}}}}}}", + "eventDescription" : "Condition \"nev\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 456, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees {1}.}{{code{iouring_sqe_get}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_sqe_get\" frees \"loop->iouring_sq_ring\".", + "eventNumber" : 3, + "eventTreePosition" : "3", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 458, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))}}}}}}", + "eventDescription" : "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 263, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{res >= 0}}}}}}", + "eventDescription" : "Condition \"res >= 0\", taking false branch.", + "eventNumber" : 2, + "eventTreePosition" : "3.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 274, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Jumping back to the beginning of the loop.}}}}", + "eventDescription" : "Jumping back to the beginning of the loop.", + "eventNumber" : 3, + "eventTreePosition" : "3.3", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 282, + "columnNumber" : 5, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))}}}}}}", + "eventDescription" : "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "eventNumber" : 4, + "eventTreePosition" : "3.4", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 263, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{res >= 0}}}}}}", + "eventDescription" : "Condition \"res >= 0\", taking false branch.", + "eventNumber" : 5, + "eventTreePosition" : "3.5", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 274, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_poll}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_poll\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 6, + "eventTreePosition" : "3.6", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 280, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{iouring_handle_cq(loop)}}}}}}", + "eventDescription" : "Condition \"iouring_handle_cq(loop)\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.6.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 641, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->fdchangecnt}}}}}}", + "eventDescription" : "Condition \"loop->fdchangecnt\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "3.6.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 641, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Falling through to end of if statement.}}}}", + "eventDescription" : "Falling through to end of if statement.", + "eventNumber" : 3, + "eventTreePosition" : "3.6.3", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 642, + "columnNumber" : 31, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{timeout != 0.}}}}}}", + "eventDescription" : "Condition \"timeout != 0.\", taking false branch.", + "eventNumber" : 4, + "eventTreePosition" : "3.6.4", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 648, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->iouring_to_submit}}}}}}", + "eventDescription" : "Condition \"loop->iouring_to_submit\", taking true branch.", + "eventNumber" : 5, + "eventTreePosition" : "3.6.5", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 648, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{!!(res < 0)}}}}}}", + "eventDescription" : "Condition \"!!(res < 0)\", taking false branch.", + "eventNumber" : 6, + "eventTreePosition" : "3.6.6", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 652, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_handle_cq}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_handle_cq\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 7, + "eventTreePosition" : "3.6.7", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 660, + "columnNumber" : 9, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking false branch.}{{code{head == tail}}}}}}", + "eventDescription" : "Condition \"head == tail\", taking false branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.6.7.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 611, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))}}}}}}", + "eventDescription" : "Condition \"!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))\", taking true branch.", + "eventNumber" : 2, + "eventTreePosition" : "3.6.7.2", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 615, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_overflow}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_overflow\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 3, + "eventTreePosition" : "3.6.7.3", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 617, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{!loop->iouring_max_entries}}}}}}", + "eventDescription" : "Condition \"!loop->iouring_max_entries\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.6.7.3.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 571, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_fork}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_fork\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 2, + "eventTreePosition" : "3.6.7.3.2", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 574, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{iouring_internal_destroy}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"iouring_internal_destroy\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 1, + "eventTreePosition" : "3.6.7.3.2.1", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 420, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{loop->iouring_sq_ring != (void *)0xffffffffffffffff}}}}}}", + "eventDescription" : "Condition \"loop->iouring_sq_ring != (void *)0xffffffffffffffff\", taking true branch.", + "eventNumber" : 1, + "eventTreePosition" : "3.6.7.3.2.1.1", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 322, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{{0} frees parameter {1}.}{{code{munmap}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "\"munmap\" frees parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 2, + "eventTreePosition" : "3.6.7.3.2.1.2", + "eventSet" : 0, + "eventTag" : "freed_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 322, + "columnNumber" : 38, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{nev & EV_READ}}}}}}", + "eventDescription" : "Condition \"nev & EV_READ\", taking true branch.", + "eventNumber" : 4, + "eventTreePosition" : "4", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 463, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Condition {0}, taking true branch.}{{code{nev & EV_WRITE}}}}}}", + "eventDescription" : "Condition \"nev & EV_WRITE\", taking true branch.", + "eventNumber" : 5, + "eventTreePosition" : "5", + "eventSet" : 0, + "eventTag" : "path", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 463, + "columnNumber" : 7, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + }, + { + "covLStrEventDescription" : "{CovLStrv2{{t{Calling {0} dereferences freed pointer {1}.}{{code{iouring_sqe_submit}}}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "Calling \"iouring_sqe_submit\" dereferences freed pointer \"loop->iouring_sq_ring\".", + "eventNumber" : 6, + "eventTreePosition" : "6", + "eventSet" : 0, + "eventTag" : "deref_arg", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 466, + "columnNumber" : 7, + "main" : true, + "moreInformationId" : null, + "remediation" : false, + "events" : [ + { + "covLStrEventDescription" : "{CovLStrv2{{t{Directly dereferencing parameter {0}.}{{code{loop->iouring_sq_ring}}}}}}", + "eventDescription" : "Directly dereferencing parameter \"loop->iouring_sq_ring\".", + "eventNumber" : 1, + "eventTreePosition" : "6.1", + "eventSet" : 0, + "eventTag" : "deref_parm", + "filePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "strippedFilePathname" : "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "lineNumber" : 295, + "columnNumber" : 3, + "main" : false, + "moreInformationId" : null, + "remediation" : false, + "events" : null + } + ] + } + ], + "stateOnServer" : null, + "localTriage" : null, + "checkerProperties" : { + "category" : "Memory - illegal accesses", + "categoryDescription" : "Memory - illegal accesses", + "cweCategory" : "416", + "weaknessIdCategory" : "908", + "issueKinds" : [ + "QUALITY", + "SECURITY" + ], + "eventSetCaptions" : [], + "impact" : "High", + "impactDescription" : "High", + "subcategoryLocalEffect" : "This could cause an immediate crash or incorrect values might be read subsequently resulting in incorrect computations.", + "subcategoryShortDescription" : "Use after free", + "subcategoryLongDescription" : "A pointer to freed memory is dereferenced, used as a function argument, or otherwise used" + } + } + ], + "desktopAnalysisSettings" : null, + "error" : null, + "warnings" : [] +} diff --git a/tests/csgrep/0132-cov-parser-nested-evt-stdout.txt b/tests/csgrep/0132-cov-parser-nested-evt-stdout.txt new file mode 100644 index 00000000..7ea5aa6a --- /dev/null +++ b/tests/csgrep/0132-cov-parser-nested-evt-stdout.txt @@ -0,0 +1,1652 @@ +{ + "defects": [ + { + "checker": "ASSERT_SIDE_EFFECT", + "function": "ev_run", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4156, + "column": 9, + "event": "assignment_where_comparison_intended", + "message": "Assignment \"loop->loop_done = 128\" has a side effect. This code will work differently in a non-debug build.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4156, + "column": 9, + "event": "remediation", + "message": "Did you intend to use a comparison (\"==\") instead?", + "verbosity_level": 1 + } + ] + }, + { + "checker": "ASSERT_SIDE_EFFECT", + "function": "ev_run", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4158, + "column": 9, + "event": "assignment_where_comparison_intended", + "message": "Assignment \"loop->loop_done = EVBREAK_CANCEL\" has a side effect. This code will work differently in a non-debug build.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4158, + "column": 9, + "event": "remediation", + "message": "Did you intend to use a comparison (\"==\") instead?", + "verbosity_level": 1 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "fd_intern", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 2563, + "column": 3, + "event": "check_return", + "message": "Calling \"fcntl(fd, 2, 1)\" without checking return value. This library function may fail and return an error code.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "fd_intern", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 2564, + "column": 3, + "event": "check_return", + "message": "Calling \"fcntl(fd, 4, 2048)\" without checking return value. This library function may fail and return an error code.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "pipecb", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 2, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 2832, + "column": 3, + "event": "path", + "message": "Condition \"revents & EV_READ\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 2835, + "column": 7, + "event": "path", + "message": "Condition \"loop->evpipe[0] < 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 2838, + "column": 11, + "event": "check_return", + "message": "\"read(int, void *, size_t)\" returns the number of bytes read, but it is ignored.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "epoll_epoll_create", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 3, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "line": 250, + "column": 3, + "event": "path", + "message": "Condition \"fd < 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "line": 250, + "column": 3, + "event": "path", + "message": "Condition \"*__errno_location() == 22\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "line": 255, + "column": 7, + "event": "path", + "message": "Condition \"fd >= 0\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "line": 256, + "column": 9, + "event": "check_return", + "message": "Calling \"fcntl(fd, 2, 1)\" without checking return value. This library function may fail and return an error code.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "CHECKED_RETURN", + "cwe": 252, + "function": "pipecb", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 2, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 2832, + "column": 3, + "event": "path", + "message": "Condition \"revents & EV_READ\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 2835, + "column": 7, + "event": "path", + "message": "Condition \"loop->evpipe[0] < 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 2852, + "column": 11, + "event": "check_return", + "message": "\"read(int, void *, size_t)\" returns the number of bytes read, but it is ignored.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "DEADCODE", + "cwe": 561, + "function": "epoll_modify", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 3, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "line": 84, + "column": 3, + "event": "cond_cannot_single", + "message": "Condition \"nev\", taking true branch. Now the value of \"nev\" cannot be equal to 0.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "line": 102, + "column": 12, + "event": "cannot_single", + "message": "At condition \"nev\", the value of \"nev\" cannot be equal to 0.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "line": 102, + "column": 7, + "event": "dead_error_condition", + "message": "The condition \"!nev\" cannot be true.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "line": 103, + "column": 9, + "event": "dead_error_line", + "message": "Execution cannot reach this statement: \"goto dec_egen;\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "array_verify", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3601, + "column": 7, + "event": "extra_comma", + "message": "Part \"\"libev: active index mismatch\"\" of statement \"\"libev: active index mismatch\" , (((W)ws[cnt])->active == cnt + 1)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "timers_reify", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3823, + "column": 15, + "event": "extra_comma", + "message": "Part \"\"libev: negative ev_timer repeat value found while processing timers\"\" of statement \"\"libev: negative ev_timer repeat value found while processing timers\" , (w->repeat > 0.)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "periodics_reify", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3886, + "column": 15, + "event": "extra_comma", + "message": "Part \"\"libev: ev_periodic reschedule callback returned time in the past\"\" of statement \"\"libev: ev_periodic reschedule callback returned time in the past\" , (((WT)w)->at >= loop->ev_rt_now)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_io_stop", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4368, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: ev_io_stop called with illegal fd (must stay constant after start!)\"\" of statement \"\"libev: ev_io_stop called with illegal fd (must stay constant after start!)\" , (w->fd >= 0 && w->fd < loop->anfdmax)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_timer_start", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4392, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: ev_timer_start called with negative timer repeat value\"\" of statement \"\"libev: ev_timer_start called with negative timer repeat value\" , (w->repeat >= 0.)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_timer_stop", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4421, + "column": 5, + "event": "extra_comma", + "message": "Part \"\"libev: internal timer heap corruption\"\" of statement \"\"libev: internal timer heap corruption\" , (loop->timers[active].w == (WT)w)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_periodic_start", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4490, + "column": 7, + "event": "extra_comma", + "message": "Part \"\"libev: ev_periodic_start called with negative interval value\"\" of statement \"\"libev: ev_periodic_start called with negative interval value\" , (w->interval >= 0.)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_periodic_stop", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4523, + "column": 5, + "event": "extra_comma", + "message": "Part \"\"libev: internal periodic heap corruption\"\" of statement \"\"libev: internal periodic heap corruption\" , (loop->periodics[active].w == (WT)w)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_child_start", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4684, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: child watchers are only supported in the default loop\"\" of statement \"\"libev: child watchers are only supported in the default loop\" , (loop == ev_default_loop_ptr)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_embed_start", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 5271, + "column": 5, + "event": "extra_comma", + "message": "Part \"\"libev: loop to be embedded is not embeddable\"\" of statement \"\"libev: loop to be embedded is not embeddable\" , (loop->backend & ev_embeddable_backends())\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "epoll_modify", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_epoll.c", + "line": 134, + "column": 5, + "event": "extra_comma", + "message": "Part \"\"libev: I/O watcher with invalid fd found in epoll_ctl\"\" of statement \"\"libev: I/O watcher with invalid fd found in epoll_ctl\" , (*__errno_location() != 9 && *__errno_location() != 40 && *__errno_location() != 22)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "iouring_enter", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 240, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: io_uring_enter did not consume all sqes\"\" of statement \"\"libev: io_uring_enter did not consume all sqes\" , (res < 0 || res == loop->iouring_to_submit)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "iouring_fork", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 428, + "column": 3, + "event": "extra_comma", + "message": "Part \"loop\" of statement \"loop , (&loop->iouring_tfd_w)\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "iouring_tfd_update", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 489, + "column": 10, + "event": "extra_comma", + "message": "Part \"\"libev: iouring timerfd_settime failed\"\" of statement \"\"libev: iouring timerfd_settime failed\" , 0\" has no effect due to the comma.", + "verbosity_level": 0 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "verify_heap", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3587, + "column": 7, + "event": "extra_comma", + "message": "Part \"\"libev: active index mismatch in heap\"\" of statement \"\"libev: active index mismatch in heap\" , (((W)heap[i].w)->active == i)\" has no effect due to the comma.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3588, + "column": 7, + "event": "extra_comma", + "message": "Part \"\"libev: heap condition violated\"\" of statement \"\"libev: heap condition violated\" , (i == 3 || heap[(i - 3 - 1) / 4 + 3].at <= heap[i].at)\" has no effect due to the comma.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3588, + "column": 7, + "event": "extra_comma", + "message": "Part \"\"libev: heap condition violated\"\" of statement \"\"libev: heap condition violated\" , (i == 4 - 1 || heap[(i - 3 - 1) / 4 + 3].at <= heap[i].at)\" has no effect due to the comma.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3589, + "column": 7, + "event": "extra_comma", + "message": "Part \"\"libev: heap at cache mismatch\"\" of statement \"\"libev: heap at cache mismatch\" , (heap[i].at == ((WT)heap[i].w)->at)\" has no effect due to the comma.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "verify_watcher", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3573, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: watcher has invalid priority\"\" of statement \"\"libev: watcher has invalid priority\" , (((W)w)->priority - ((0x7f & 4) ? -2 : 0) >= 0 && ((W)w)->priority - -2 < 5)\" has no effect due to the comma.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3573, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: watcher has invalid priority\"\" of statement \"\"libev: watcher has invalid priority\" , (((W)w)->priority - -2 >= 0 && ((W)w)->priority - -2 < 5)\" has no effect due to the comma.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3576, + "column": 5, + "event": "extra_comma", + "message": "Part \"\"libev: pending watcher not on pending queue\"\" of statement \"\"libev: pending watcher not on pending queue\" , (loop->pendings[((W)w)->priority - ((0x7f & 4) ? -2 : 0)][w->pending - 1].w == w)\" has no effect due to the comma.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3576, + "column": 5, + "event": "extra_comma", + "message": "Part \"\"libev: pending watcher not on pending queue\"\" of statement \"\"libev: pending watcher not on pending queue\" , (loop->pendings[((W)w)->priority - -2][w->pending - 1].w == w)\" has no effect due to the comma.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_signal_start", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4562, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: ev_signal_start called with illegal signal number\"\" of statement \"\"libev: ev_signal_start called with illegal signal number\" , (w->signum > 0 && w->signum < 65)\" has no effect due to the comma.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4565, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: a signal must not be attached to two different loops\"\" of statement \"\"libev: a signal must not be attached to two different loops\" , (!signals[w->signum - 1].loop || signals[w->signum - 1].loop == loop)\" has no effect due to the comma.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "poll_poll", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_poll.c", + "line": 113, + "column": 9, + "event": "extra_comma", + "message": "Part \"\"libev: poll returned illegal result, broken BSD kernel?\"\" of statement \"\"libev: poll returned illegal result, broken BSD kernel?\" , (p < loop->polls + loop->pollcnt)\" has no effect due to the comma.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_poll.c", + "line": 121, + "column": 17, + "event": "extra_comma", + "message": "Part \"\"libev: poll found invalid fd in poll set\"\" of statement \"\"libev: poll found invalid fd in poll set\" , 0\" has no effect due to the comma.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_io_start", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4339, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: ev_io_start called with negative fd\"\" of statement \"\"libev: ev_io_start called with negative fd\" , (fd >= 0)\" has no effect due to the comma.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4340, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: ev_io_start called with illegal event mask\"\" of statement \"\"libev: ev_io_start called with illegal event mask\" , (!(w->events & 0xffffffffffffff7c))\" has no effect due to the comma.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4340, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: ev_io_start called with illegal event mask\"\" of statement \"\"libev: ev_io_start called with illegal event mask\" , (!(w->events & ~(EV__IOFDSET | EV_READ | EV_WRITE)))\" has no effect due to the comma.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4352, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: ev_io_start called with corrupted watcher\"\" of statement \"\"libev: ev_io_start called with corrupted watcher\" , (((WL)w)->next != (WL)w)\" has no effect due to the comma.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_verify", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3619, + "column": 5, + "event": "extra_comma", + "message": "Part \"\"libev: negative fd in fdchanges\"\" of statement \"\"libev: negative fd in fdchanges\" , (loop->fdchanges[i] >= 0)\" has no effect due to the comma.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3632, + "column": 15, + "event": "extra_comma", + "message": "Part \"\"libev: io watcher list contains a loop\"\" of statement \"\"libev: io watcher list contains a loop\" , (w != w2)\" has no effect due to the comma.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3636, + "column": 11, + "event": "extra_comma", + "message": "Part \"\"libev: inactive fd watcher on anfd list\"\" of statement \"\"libev: inactive fd watcher on anfd list\" , (((W)w)->active == 1)\" has no effect due to the comma.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 3637, + "column": 11, + "event": "extra_comma", + "message": "Part \"\"libev: fd mismatch between watcher and anfd\"\" of statement \"\"libev: fd mismatch between watcher and anfd\" , (((ev_io *)w)->fd == i)\" has no effect due to the comma.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "iouring_process_cqe", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 505, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: io_uring fd must be in-bounds\"\" of statement \"\"libev: io_uring fd must be in-bounds\" , (fd >= 0 && fd < loop->anfdmax)\" has no effect due to the comma.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 525, + "column": 11, + "event": "extra_comma", + "message": "Part \"\"libev: event loop rejected bad fd\"\" of statement \"\"libev: event loop rejected bad fd\" , (res != -9)\" has no effect due to the comma.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "NO_EFFECT", + "cwe": 480, + "function": "ev_run", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 0, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4027, + "column": 3, + "event": "extra_comma", + "message": "Part \"\"libev: ev_loop recursion during release detected\"\" of statement \"\"libev: ev_loop recursion during release detected\" , (loop->loop_done != 128)\" has no effect due to the comma.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4165, + "column": 13, + "event": "extra_comma", + "message": "Part \"\"libev: pipe_w not active, but pipe not written\"\" of statement \"\"libev: pipe_w not active, but pipe not written\" , (0 + ((ev_watcher *)(void *)&loop->pipe_w)->active)\" has no effect due to the comma.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "TAINTED_SCALAR", + "cwe": 606, + "function": "infy_cb", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 5, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4862, + "column": 3, + "event": "tainted_argument", + "message": "Calling function \"read\" taints argument \"*buf\". [Note: The source code implementation of the function has been overridden by a builtin model.]", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4864, + "column": 3, + "event": "path", + "message": "Condition \"ofs < len\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4866, + "column": 7, + "event": "var_assign_var", + "message": "Assigning: \"ev\" = \"(struct inotify_event *)(buf + ofs)\". Both are now tainted.", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4868, + "column": 7, + "event": "var_assign_var", + "message": "Compound assignment involving tainted variable \"16UL + ev->len\" to variable \"ofs\" taints \"ofs\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4869, + "column": 5, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4864, + "column": 3, + "event": "tainted_data", + "message": "Using tainted variable \"ofs\" as a loop boundary.", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev.c", + "line": 4864, + "column": 3, + "event": "remediation", + "message": "Ensure that tainted values are properly sanitized, by checking that their values are within a permissible range.", + "verbosity_level": 1 + } + ] + }, + { + "checker": "USE_AFTER_FREE", + "cwe": 416, + "imp": 1, + "function": "iouring_modify", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 23, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 437, + "column": 3, + "event": "path", + "message": "Condition \"oev\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 440, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_sqe_get\" frees \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 263, + "column": 7, + "event": "path", + "message": "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 274, + "column": 7, + "event": "path", + "message": "Condition \"res >= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 282, + "column": 5, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 263, + "column": 7, + "event": "path", + "message": "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 274, + "column": 7, + "event": "path", + "message": "Condition \"res >= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 280, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_poll\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 641, + "column": 3, + "event": "path", + "message": "Condition \"iouring_handle_cq(loop)\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 641, + "column": 3, + "event": "path", + "message": "Condition \"loop->fdchangecnt\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 642, + "column": 31, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 648, + "column": 3, + "event": "path", + "message": "Condition \"timeout != 0.\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 648, + "column": 3, + "event": "path", + "message": "Condition \"loop->iouring_to_submit\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 652, + "column": 7, + "event": "path", + "message": "Condition \"!!(res < 0)\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 660, + "column": 9, + "event": "freed_arg", + "message": "\"iouring_handle_cq\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 611, + "column": 3, + "event": "path", + "message": "Condition \"head == tail\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 615, + "column": 3, + "event": "path", + "message": "Condition \"!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 617, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_overflow\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 571, + "column": 3, + "event": "path", + "message": "Condition \"!loop->iouring_max_entries\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 574, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_fork\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 420, + "column": 3, + "event": "freed_arg", + "message": "\"iouring_internal_destroy\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 322, + "column": 3, + "event": "path", + "message": "Condition \"loop->iouring_sq_ring != (void *)0xffffffffffffffff\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 322, + "column": 38, + "event": "freed_arg", + "message": "\"munmap\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 450, + "column": 7, + "event": "deref_arg", + "message": "Calling \"iouring_sqe_submit\" dereferences freed pointer \"loop->iouring_sq_ring\".", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 295, + "column": 3, + "event": "deref_parm", + "message": "Directly dereferencing parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + } + ] + }, + { + "checker": "USE_AFTER_FREE", + "cwe": 416, + "imp": 1, + "function": "iouring_sqe_get", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 19, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 263, + "column": 7, + "event": "path", + "message": "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 274, + "column": 7, + "event": "path", + "message": "Condition \"res >= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 280, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_poll\" frees \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 641, + "column": 3, + "event": "path", + "message": "Condition \"iouring_handle_cq(loop)\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 641, + "column": 3, + "event": "path", + "message": "Condition \"loop->fdchangecnt\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 642, + "column": 31, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 648, + "column": 3, + "event": "path", + "message": "Condition \"timeout != 0.\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 648, + "column": 3, + "event": "path", + "message": "Condition \"loop->iouring_to_submit\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 652, + "column": 7, + "event": "path", + "message": "Condition \"!!(res < 0)\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 660, + "column": 9, + "event": "freed_arg", + "message": "\"iouring_handle_cq\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 611, + "column": 3, + "event": "path", + "message": "Condition \"head == tail\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 615, + "column": 3, + "event": "path", + "message": "Condition \"!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 617, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_overflow\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 571, + "column": 3, + "event": "path", + "message": "Condition \"!loop->iouring_max_entries\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 574, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_fork\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 420, + "column": 3, + "event": "freed_arg", + "message": "\"iouring_internal_destroy\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 322, + "column": 3, + "event": "path", + "message": "Condition \"loop->iouring_sq_ring != (void *)0xffffffffffffffff\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 322, + "column": 38, + "event": "freed_arg", + "message": "\"munmap\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 282, + "column": 5, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 261, + "column": 7, + "event": "use_after_free", + "message": "Using freed pointer \"loop->iouring_sq_ring\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "USE_AFTER_FREE", + "cwe": 416, + "imp": 1, + "function": "iouring_sqe_get", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 23, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 263, + "column": 7, + "event": "path", + "message": "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 274, + "column": 7, + "event": "path", + "message": "Condition \"res >= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 280, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_poll\" frees \"loop->iouring_sqes\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 641, + "column": 3, + "event": "path", + "message": "Condition \"iouring_handle_cq(loop)\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 641, + "column": 3, + "event": "path", + "message": "Condition \"loop->fdchangecnt\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 642, + "column": 31, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 648, + "column": 3, + "event": "path", + "message": "Condition \"timeout != 0.\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 648, + "column": 3, + "event": "path", + "message": "Condition \"loop->iouring_to_submit\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 652, + "column": 7, + "event": "path", + "message": "Condition \"!!(res < 0)\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 660, + "column": 9, + "event": "freed_arg", + "message": "\"iouring_handle_cq\" frees parameter \"loop->iouring_sqes\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 611, + "column": 3, + "event": "path", + "message": "Condition \"head == tail\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 615, + "column": 3, + "event": "path", + "message": "Condition \"!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 617, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_overflow\" frees parameter \"loop->iouring_sqes\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 571, + "column": 3, + "event": "path", + "message": "Condition \"!loop->iouring_max_entries\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 574, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_fork\" frees parameter \"loop->iouring_sqes\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 420, + "column": 3, + "event": "freed_arg", + "message": "\"iouring_internal_destroy\" frees parameter \"loop->iouring_sqes\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 322, + "column": 3, + "event": "path", + "message": "Condition \"loop->iouring_sq_ring != (void *)0xffffffffffffffff\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 323, + "column": 3, + "event": "path", + "message": "Condition \"loop->iouring_cq_ring != (void *)0xffffffffffffffff\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 324, + "column": 3, + "event": "path", + "message": "Condition \"loop->iouring_sqes != (void *)0xffffffffffffffff\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 324, + "column": 38, + "event": "freed_arg", + "message": "\"munmap\" frees parameter \"loop->iouring_sqes\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 282, + "column": 5, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 263, + "column": 7, + "event": "path", + "message": "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 264, + "column": 9, + "event": "path", + "message": "Breaking from loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 286, + "column": 3, + "event": "use_after_free", + "message": "Using freed pointer \"loop->iouring_sqes\".", + "verbosity_level": 0 + } + ] + }, + { + "checker": "USE_AFTER_FREE", + "cwe": 416, + "imp": 1, + "function": "iouring_modify", + "language": "c/c++", + "tool": "coverity", + "key_event_idx": 26, + "events": [ + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 437, + "column": 3, + "event": "path", + "message": "Condition \"oev\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 456, + "column": 3, + "event": "path", + "message": "Condition \"nev\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 458, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_sqe_get\" frees \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 263, + "column": 7, + "event": "path", + "message": "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 274, + "column": 7, + "event": "path", + "message": "Condition \"res >= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 282, + "column": 5, + "event": "path", + "message": "Jumping back to the beginning of the loop.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 263, + "column": 7, + "event": "path", + "message": "Condition \"!!(tail + 1 - *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_head)) <= *((unsigned int volatile *)((char *)loop->iouring_sq_ring + loop->iouring_sq_ring_entries)))\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 274, + "column": 7, + "event": "path", + "message": "Condition \"res >= 0\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 280, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_poll\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 641, + "column": 3, + "event": "path", + "message": "Condition \"iouring_handle_cq(loop)\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 641, + "column": 3, + "event": "path", + "message": "Condition \"loop->fdchangecnt\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 642, + "column": 31, + "event": "path", + "message": "Falling through to end of if statement.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 648, + "column": 3, + "event": "path", + "message": "Condition \"timeout != 0.\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 648, + "column": 3, + "event": "path", + "message": "Condition \"loop->iouring_to_submit\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 652, + "column": 7, + "event": "path", + "message": "Condition \"!!(res < 0)\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 660, + "column": 9, + "event": "freed_arg", + "message": "\"iouring_handle_cq\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 611, + "column": 3, + "event": "path", + "message": "Condition \"head == tail\", taking false branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 615, + "column": 3, + "event": "path", + "message": "Condition \"!!*((unsigned int volatile *)((char *)loop->iouring_cq_ring + loop->iouring_cq_overflow))\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 617, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_overflow\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 571, + "column": 3, + "event": "path", + "message": "Condition \"!loop->iouring_max_entries\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 574, + "column": 7, + "event": "freed_arg", + "message": "\"iouring_fork\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 420, + "column": 3, + "event": "freed_arg", + "message": "\"iouring_internal_destroy\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 322, + "column": 3, + "event": "path", + "message": "Condition \"loop->iouring_sq_ring != (void *)0xffffffffffffffff\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 322, + "column": 38, + "event": "freed_arg", + "message": "\"munmap\" frees parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 463, + "column": 7, + "event": "path", + "message": "Condition \"nev & EV_READ\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 463, + "column": 7, + "event": "path", + "message": "Condition \"nev & EV_WRITE\", taking true branch.", + "verbosity_level": 2 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 466, + "column": 7, + "event": "deref_arg", + "message": "Calling \"iouring_sqe_submit\" dereferences freed pointer \"loop->iouring_sq_ring\".", + "verbosity_level": 0 + }, + { + "file_name": "/builddir/build/BUILD/libev-4.33/ev_iouring.c", + "line": 295, + "column": 3, + "event": "deref_parm", + "message": "Directly dereferencing parameter \"loop->iouring_sq_ring\".", + "verbosity_level": 1 + } + ] + } + ] +} diff --git a/tests/csgrep/CMakeLists.txt b/tests/csgrep/CMakeLists.txt index 2869e17e..d6ac4df5 100644 --- a/tests/csgrep/CMakeLists.txt +++ b/tests/csgrep/CMakeLists.txt @@ -175,3 +175,4 @@ test_csgrep("0128-cov-parser-noloc" ) test_csgrep("0129-sarif-gcc-pwd" ) test_csgrep("0130-file-glob" ) test_csgrep("0131-unicontrol-perl-man-page" ) +test_csgrep("0132-cov-parser-nested-evt" )