Transcode: Detecting Status Code Mapping Errors in Large-Scale Systems
Wensheng Tang, Yikun Hu, Gang Fan, Peisen Yao, Rongxin Wu, Guangyuan Bai, Pengcheng Wang, Charles Zhang
Abstract
Status code mappings reveal state shifts of a program, mapping one status code to another. Due to careless programming or the lack of the system-wide knowledge of a whole program, developers can make incorrect mappings. Such errors are widely spread across modern software, some of which have even become critical vulnerabilities. Unfortunately, existing solutions merely focus on single status code values, while never considering the relationships, that is, mappings, among them. Therefore, it is imperative to propose an effective method to detect status code mapping errors. In this paper, we propose TRANSCODE to detect potential status code mapping errors. It firstly conducts value flow analysis to efficiently and precisely collect candidate status code values, that is, the integer values, which are checked by following conditional comparisons. Then, it aggregates the correlated status codes according to whether they are propagated with the same variable. Finally, TRANSCODE extracts mappings based on control dependencies and reports the mapping error if one status code is mapped to two others of the same kind. We have implemented TRANSCODE as a prototype system, and evaluated it with 5 real-world software projects, each of which possesses in the order of a million lines of code. The experimental results show that TRANSCODE is capable of handling large-scale systems in both a precise and efficient manner. Furthermore, it has discovered 59 new errors in the tested projects, among which 13 have been fixed by the community. We also deploy TRANSCODE in WeChat, a widely-used instant messaging service, and have succeeded in finding real mapping errors in the industrial settings.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 537c52b3-2cd0-4072-922a-993bb0dfa587Cited by top-tier papers1
Ask how each one uses itBuilds on3
- Automatically Detecting Error Handling Bugs Using Error SpecificationsSuman Jana, Yuan Jochen Kang, Samuel Roth, Baishakhi RayUSENIX Security 2016 · 79 citations
- Skeletal approximation enumeration for SMT solver testingPeisen Yao, Heqing Huang, Wensheng Tang, Qingkai Shi et al.FSE 2021 · 20 citations
- Fuzzing SMT solvers via two-dimensional input space explorationPeisen Yao, Heqing Huang, Wensheng Tang, Qingkai Shi et al.ISSTA 2021 · 18 citations
Related papers
- Characterizing and Detecting Bugs in WeChat Mini-ProgramsTao Wang, Qingxin Xu, Xiaoning Chang, Wensheng Dou et al.ICSE 2022 · 19 citations
- ChangeRCA: Finding Root Causes from Software Changes in Large Online SystemsGuangba Yu, Pengfei Chen, Zilong He, Qiuyu Yan et al.FSE 2024 · 3 citations
- TransMap: Pinpointing Mistakes in Neural Code TranslationBo Wang, Ruishi Li, Mingkai Li, Prateek SaxenaFSE 2023 · 4 citations
- Graph based Incident Extraction and Diagnosis in Large-Scale Online SystemsZilong He, Pengfei Chen, Yu Luo, Qiuyu Yan et al.ASE 2022 · 12 citations
- TransferFuzz: Fuzzing with Historical Trace for Verifying Propagated Vulnerability CodeSiyuan Li, Yuekang Li, Zuxin Chen, Chaopeng Dong et al.ICSE 2025 · 2 citations
