【发布时间】:2018-05-18 10:55:43
【问题描述】:
我怎样才能让 Coverity 知道条件 !pHost 由于 return 语句不应该被进一步评估?
bool mudlet::setWindowFont(Host* pHost, const QString& window, const QString& font)
1359{
1. Condition !pHost, taking false branch.
1360 if (!pHost) {
1361 return false;
1362 }
1363
1364 QMap<QString, TConsole*>& dockWindowConsoleMap = mHostConsoleMap[pHost];
1365
2. Condition dockWindowConsoleMap->contains(window), taking true branch.
1366 if (dockWindowConsoleMap.contains(window)) {
3. assign_zero: Assigning: <temporary> = NULL.
4. identity_transfer: Passing TConsole * const(NULL) as argument 2 to member function value, which returns that argument.
5. alias_transfer: Assigning: pC = dockWindowConsoleMap->value(window, TConsole * const(NULL)).
1367 TConsole* pC = dockWindowConsoleMap.value(window);
CID 1468654 (#1 of 1): Explicit null dereferenced (FORWARD_NULL)6. var_deref_model: Passing null pointer pC to setMiniConsoleFont, which dereferences it. [show details]
【问题讨论】:
-
这里 !pHost 为 false,表示指针非空,不采用返回路径。之后很大程度上取决于 Coverity 是否可以确定指针的值是否可以改变。
-
你说得对——我很困惑,这意味着它走的是
pHost是真正的路径。
标签: coverity