`RULE-25-21`, others: Consider something like a library TracesToExplicit<T>
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
研究方向
首先檢查 RULE-25-21 的實作與測試,以及 atomic_*_explicit 操作的處理方式。定義賦值、參數以及函式呼叫或回傳值所支援的反向追蹤情況,然後確定應如何回報無效路徑。當所提議的 tracing 函式庫能夠處理可接受的根,並拒絕無法追蹤到 memory_order_seq_cst 的值時,即視為完成。
由索引模型根據 Issue 內容生成。
描述
Affected rules
RULE-25-21- Likely others, haven't researched
Description
Rule 25-21 requires that the atomic_*_explicit operations use the memory order memory_order_seq_cst.
It would probably be overly restrictive to require an explicit inline written memory_order_seq_cst at the call site. However, it's probably too accepting to merely allow any dynamically computed value. Ideally, we can support basic indirection like variable assignment, parameter values, function calls/returns, and report cases that don't trace back to an acceptable root.
Doing this as a typical flow analysis is backwards. We can easily track flow from memory_order_seq_cst exprs to atomic_*_explicit calls, but the existence of such a flow doesn't preclude that invalid values also flow to the call. Alternatively, there are potential performance issues if we consider all exprs which are not memory_order_seq_cst to be sources in the flow analysis.
Wouldn't be terribly hard to write a library such as TracesToExplicit<T> that is a very simple global flow analysis made for this purpose, starting from sinks and doing only very obvious backwards tracking of values through function calls and variable assignments. If that doesn't track back to an acceptable value, we can report it. Ideally we can report it as a path-problem though this makes such a library more complex to implement.
- 主要語言
- CodeQL
- 星號
- 227
- 分支
- 82
- 平均合併
- 6 天 7 小時
- 30 天內合併 PR
- 9
環境準備
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
github/codeql-coding-standards 的其他 Issue
-
false positive/false negative Stardard-MISRA-C++
難度 2/5 1-3 小時 新手友好度 72/100
github/codeql-coding-standards#1172 ·
維護者通常 1 天內回覆
-
Difficulty-Low false positive/false negative false-negative Impact-Low Standard-MISRA-C
難度 2/5 1-3 小時 新手友好度 68/100
github/codeql-coding-standards#821 ·
維護者通常 1 天內回覆
-
Difficulty-Medium false positive/false negative false-positive Impact-Medium Standard-CERT-C
難度 4/5 3-5 天 新手友好度 48/100
github/codeql-coding-standards#1200 ·
維護者通常 1 天內回覆
-
`RULE-0-0-1`: "unreachable statement" false positives due to over-pruning of the control-flow graph未關閉false positive/false negative
難度 4/5 3-5 天 新手友好度 48/100
github/codeql-coding-standards#1190 ·
維護者通常 1 天內回覆
-
false positive/false negative
難度 3/5 1-2 天 新手友好度 65/100
github/codeql-coding-standards#1175 ·
維護者通常 1 天內回覆
查看 github/codeql-coding-standards 的全部 Issue
相似的 Issue
-
category:port-update
難度 2/5 1-3 小時 新手友好度 76/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 72/100
ActivityWatch/activitywatch#1464 · 1 個 reaction ·
維護者通常 1 天內回覆
-
[Bug]: The ckg tool drops the return type of every decorated Python method in class search results未關閉
難度 2/5 1-3 小時 新手友好度 78/100
bytedance/trae-agent#483 ·
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 75/100
flathub/flathub#10377 · 1 個 reaction ·
維護者通常 1 天內回覆
-
enhancement good first issue
難度 2/5 1-3 小時 新手友好度 78/100
kriasoft/oauth-callback#57 ·
維護者通常 1 天內回覆