EffFix: Efficient and Effective Repair of Pointer Manipulating Programs
This work introduces EffFix, a tool that applies a novel static analysis-driven automated program repair (APR) technique for fixing memory errors. APR tools typically rely on a given test-suite to guide the repair process. Apart from the need to provide test oracles, this reliance is also one of the...
Saved in:
| Published in | ACM transactions on software engineering and methodology Vol. 34; no. 3; pp. 1 - 27 |
|---|---|
| Main Authors | , , , , |
| Format | Journal Article |
| Language | English |
| Published |
New York, NY
ACM
21.02.2025
|
| Subjects | |
| Online Access | Get full text |
| ISSN | 1049-331X 1557-7392 1557-7392 |
| DOI | 10.1145/3705310 |
Cover
| Abstract | This work introduces EffFix, a tool that applies a novel static analysis-driven automated program repair (APR) technique for fixing memory errors. APR tools typically rely on a given test-suite to guide the repair process. Apart from the need to provide test oracles, this reliance is also one of the main contributors to the over-fitting problem. Static analysis based APR techniques bypass these issues only to introduce new ones, such as soundness, scalability, and generalizability. This work demonstrates how we can overcome these challenges and achieve sound memory bug repair at scale by leveraging static analysis (specifically incorrectness separation logic (ISL)) to guide repair. This is the first repair approach to use ISL. Our key insight is that the abstract domain used by static analysis to detect the bugs also contains key information to derive correct patches. Our proposed approach learns what a desirable patch is by inspecting how close a patch is to fixing the bug based on the feedback from ISL based static analysis (specifically the Pulse analyzer), and turning this information into a distribution of probabilities over context free grammars. This approach to repair is generic in that its learning strategy allows for finding patches without relying on the commonly used patch templates. Furthermore, to achieve efficient program repair, instead of focusing on heuristics for reducing the search space of patches, we make repair scalable by creating classes of equivalent patches according to the effect they have on the symbolic heap. We then conduct candidate patch validation only once per patch equivalence class. This allows EffFix to efficiently discover quality repairs even in the presence of a large pool of patch candidates. Experimental evaluation of fixing real world memory errors in medium to large scale subjects like OpenSSL, Linux Kernel, swoole, shows the efficiency and effectiveness of EffFix— in terms of automatically producing repairs from large search spaces. In particular, EffFix has a fix ratio of 66% for memory leak bugs and 83% for Null Pointer Dereferences for the considered dataset. |
|---|---|
| AbstractList | This work introduces EffFix, a tool that applies a novel static analysis-driven automated program repair (APR) technique for fixing memory errors. APR tools typically rely on a given test-suite to guide the repair process. Apart from the need to provide test oracles, this reliance is also one of the main contributors to the over-fitting problem. Static analysis based APR techniques bypass these issues only to introduce new ones, such as soundness, scalability, and generalizability. This work demonstrates how we can overcome these challenges and achieve sound memory bug repair at scale by leveraging static analysis (specifically incorrectness separation logic (ISL)) to guide repair. This is the first repair approach to use ISL. Our key insight is that the abstract domain used by static analysis to detect the bugs also contains key information to derive correct patches. Our proposed approach learns what a desirable patch is by inspecting how close a patch is to fixing the bug based on the feedback from ISL based static analysis (specifically the Pulse analyzer), and turning this information into a distribution of probabilities over context free grammars. This approach to repair is generic in that its learning strategy allows for finding patches without relying on the commonly used patch templates. Furthermore, to achieve efficient program repair, instead of focusing on heuristics for reducing the search space of patches, we make repair scalable by creating classes of equivalent patches according to the effect they have on the symbolic heap. We then conduct candidate patch validation only once per patch equivalence class. This allows EffFix to efficiently discover quality repairs even in the presence of a large pool of patch candidates. Experimental evaluation of fixing real world memory errors in medium to large scale subjects like OpenSSL, Linux Kernel, swoole, shows the efficiency and effectiveness of EffFix— in terms of automatically producing repairs from large search spaces. In particular, EffFix has a fix ratio of 66% for memory leak bugs and 83% for Null Pointer Dereferences for the considered dataset. |
| ArticleNumber | 69 |
| Author | Costea, Andreea Shariffdeen, Ridwan Zhang, Yuntong McCall, Davin Roychoudhury, Abhik |
| Author_xml | – sequence: 1 givenname: Yuntong orcidid: 0009-0005-1664-7110 surname: Zhang fullname: Zhang, Yuntong email: yuntong@comp.nus.edu.sg organization: National University of Singapore, Singapore, Singapore – sequence: 2 givenname: Andreea orcidid: 0000-0002-9089-9392 surname: Costea fullname: Costea, Andreea email: M.A.Costea@tudelft.nl organization: TU Delft, Delft, Netherlands – sequence: 3 givenname: Ridwan orcidid: 0000-0001-5409-4864 surname: Shariffdeen fullname: Shariffdeen, Ridwan email: ridwan@comp.nus.edu.sg organization: National University of Singapore, Singapore, Singapore – sequence: 4 givenname: Davin orcidid: 0000-0002-9391-4981 surname: McCall fullname: McCall, Davin email: davin.mccall@oracle.com organization: Oracle Labs, Brisbane, Australia – sequence: 5 givenname: Abhik orcidid: 0000-0002-7127-1137 surname: Roychoudhury fullname: Roychoudhury, Abhik email: abhik@comp.nus.edu.sg organization: National University of Singapore, Singapore, Singapore |
| BookMark | eNp90MFLwzAUBvAgE9ymePeUm16q7zVJ03iTsU1h4hAFbyXtkhHp0pJ2zv33dnR69PS9x_vxDt-IDHzlDSGXCLeIXNwxCYIhnJAhCiEjyVQ86GbgKmIMP87IqGk-AZBBzIdkPrV25r7vaZeucMa3VPvVYTNF674MfTW1doFWli4r51sT6LP2rt6WunV-TZehWge9ac7JqdVlYy6OOSbvs-nb5DFavMyfJg-LSMdMtVGcCGS8ACGsEhIwTnJEm9hU5lrZnPN8xQVAYtEiV8wkHFMlERikCpADG5Ob_u_W13q_02WZ1cFtdNhnCNmhgOxYQEeve1qEqmmCsf_Iq17qYvOHfo8_43xhEw |
| Cites_doi | 10.1145/2884781.2884807 10.1145/3236024.3236079 10.1145/2594291.2594334 10.1145/3418461 10.1145/3510003.3510186 10.1145/3241980 10.1145/3527325 10.1145/2610384.2610388 10.1109/ICSE-Companion58688.2023.00028 10.1145/3487570 10.1109/TSE.2011.104 10.1109/TSE.2019.2940179 10.1109/ICSE.2013.6606626 10.1145/3597503.3639222 10.1145/2786805.2786825 10.1145/2837614.2837617 10.1109/ICSE48619.2023.00128 10.1145/3385412.3386025 10.1145/3377811.3380323 10.1145/3540250.3549098 10.1145/2771783.2771791 10.1109/SANER.2017.7884635 10.1016/j.jss.2016.01.007 10.1109/TSE.2022.3147265 10.1109/TSE.2020.3013716 10.1145/2851613.2851773 10.1145/3611643.3613892 10.1145/3092703.3092714 10.1145/3022671.2984038 10.1145/3453483.3454051 10.1109/SP.2019.00071 10.1145/3546942 10.1109/ICST60714.2024.00058 10.1007/978-3-030-53291-8_14 10.1007/978-3-030-59762-7_8 10.1145/3180155.3180250 10.1007/978-3-031-09680-8_30 10.1145/3533767.3534387 10.1145/3510003.3510040 10.1145/3318162 |
| ContentType | Journal Article |
| Copyright | Copyright held by the owner/author(s). |
| Copyright_xml | – notice: Copyright held by the owner/author(s). |
| DBID | AAYXX CITATION ADTOC UNPAY |
| DOI | 10.1145/3705310 |
| DatabaseName | CrossRef Unpaywall for CDI: Periodical Content Unpaywall |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| Database_xml | – sequence: 1 dbid: UNPAY name: Unpaywall url: https://proxy.k.utb.cz/login?url=https://unpaywall.org/ sourceTypes: Open Access Repository |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1557-7392 |
| EndPage | 27 |
| ExternalDocumentID | 10.1145/3705310 10_1145_3705310 3705310 |
| GrantInformation_xml | – fundername: Singapore Ministry of Education (MoE) Tier3 research grant “Automated Program Repair” grantid: MOE-MOET32021-0001 |
| GroupedDBID | --Z -DZ -~X .4S .DC 23M 4.4 5GY 5VS 6J9 8US AAHTB AAKMM AALFJ AAYFX ABPEJ ABPPZ ACGFO ACGOD ACM ADBCU ADL ADMLS ADPZR AEBYY AENEX AENSD AETEA AFWIH AFWXC AIAGR AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS ARCSS ASPBG AVWKF BDXCO CCLIF CS3 D0L EBS EDO FEDTE GUFHI HGAVV H~9 I07 LHSKQ P1C P2P PQQKQ RNS ROL TUS UPT W7O YR2 ZCA AAYXX AEFXT AEJOY CITATION 9M8 ADMHC ADTOC AFFNX AI. EJD HF~ MVM UNPAY VH1 XOL XSW |
| ID | FETCH-LOGICAL-a239t-265134c055f9570126b11f6f87ba9fb44bd45006f1f1493e64189710308901403 |
| IEDL.DBID | UNPAY |
| ISSN | 1049-331X 1557-7392 |
| IngestDate | Sun Sep 07 11:25:43 EDT 2025 Wed Oct 01 05:53:54 EDT 2025 Mon Mar 10 16:30:34 EDT 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 3 |
| Keywords | Automated Program Repair Probabilistic Context Free Grammars Incorrectness Separation Logic |
| Language | English |
| License | This work is licensed under a Creative Commons Attribution International 4.0 License. cc-by |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a239t-265134c055f9570126b11f6f87ba9fb44bd45006f1f1493e64189710308901403 |
| ORCID | 0000-0001-5409-4864 0000-0002-9089-9392 0000-0002-9391-4981 0009-0005-1664-7110 0000-0002-7127-1137 |
| OpenAccessLink | https://proxy.k.utb.cz/login?url=https://doi.org/10.1145/3705310 |
| PageCount | 27 |
| ParticipantIDs | unpaywall_primary_10_1145_3705310 crossref_primary_10_1145_3705310 acm_primary_3705310 |
| ProviderPackageCode | CITATION AAYXX |
| PublicationCentury | 2000 |
| PublicationDate | 2025-02-21 |
| PublicationDateYYYYMMDD | 2025-02-21 |
| PublicationDate_xml | – month: 02 year: 2025 text: 2025-02-21 day: 21 |
| PublicationDecade | 2020 |
| PublicationPlace | New York, NY |
| PublicationPlace_xml | – name: New York, NY |
| PublicationTitle | ACM transactions on software engineering and methodology |
| PublicationTitleAbbrev | ACM TOSEM |
| PublicationYear | 2025 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| References | (Bib0006) 2020 (Bib0016) 2022 (Bib0035) 2011 (Bib0049) 2020 (Bib0039) 2023 (Bib0029) 2022 (Bib0042) 2017 (Bib0023) 2024 (Bib0012) 2016 (Bib0046) 2023 (Bib0022) 2013 (Bib0025) 2021; 47 (Bib0010) 2002 (Bib0009) 2007 (Bib0015) 2023 (Bib0024) 2016 (Bib0020) 2022 (Bib0028) 2017 (Bib0032) 2022 (Bib0033) 2016 (Bib0050) 2022; 48 (Bib0011) 2012; 38 (Bib0004) 2020 (Bib0045) 2018; 27 (Bib0019) 2023; 32 (Bib0007) 2022 (Bib0048) 2022; 31 (Bib0047) 2020 (Bib0030) 2015 (Bib0001) 2022 (Bib0027) 2015 (Bib0017) 2019 (Bib0041) 2016; 115 (Bib0034) 2024 (Bib0021) 2021 (Bib0008) 2024 (Bib0014) 2022 (Bib0040) 2014 (Bib0044) 2016; 51 (Bib0038) 2023 (Bib0013) 2023; 49 (Bib0003) 2018 (Bib0002) 2019; 62 (Bib0005) 2022; 6 (Bib0036) 2024; 1 (Bib0043) 2014 (Bib0037) 2024 (Bib0031) 2018 (Bib0026) 2015 (Bib0018) 2021; 30 e_1_3_2_26_2 e_1_3_2_49_2 Contractor M. R. (e_1_3_2_21_2) 2022 Le Goues C. (e_1_3_2_3_2) 2019; 62 Le Q. L. (e_1_3_2_6_2) 2022; 6 e_1_3_2_20_2 e_1_3_2_45_2 Noller Y. (e_1_3_2_17_2) 2022 Smith E. K. (e_1_3_2_28_2) 2015 Kim D. (e_1_3_2_23_2) 2013 Zhang Y. (e_1_3_2_30_2) 2022 e_1_3_2_9_2 Wang B. (e_1_3_2_43_2) 2017 e_1_3_2_18_2 Lee J. (e_1_3_2_33_2) 2022 Fu M. (e_1_3_2_15_2) 2022 Bhaisaheb S. (e_1_3_2_47_2) 2023 Yan H. (e_1_3_2_34_2) 2016 e_1_3_2_12_2 Song Y. (e_1_3_2_37_2) 2024; 1 van Tonder R. (e_1_3_2_4_2) 2018 e_1_3_2_14_2 Mechtaev S. (e_1_3_2_13_2) 2016 Ji R. (e_1_3_2_48_2) 2020 Eberlein M. (e_1_3_2_50_2) 2020 Calcagno C. (e_1_3_2_36_2) 2011 Xing Y. (e_1_3_2_35_2) 2024 Shariffdeen R. (e_1_3_2_16_2) 2023 Jones J. A. (e_1_3_2_11_2) 2002 Gao Q. (e_1_3_2_31_2) 2015 Hong S. (e_1_3_2_5_2) 2020 Lee J. (e_1_3_2_32_2) 2018 e_1_3_2_42_2 e_1_3_2_46_2 Durieux T. (e_1_3_2_29_2) 2017 Raad A. (e_1_3_2_7_2) 2020 Fan Z. (e_1_3_2_40_2) 2023 e_1_3_2_8_2 Abreu R. (e_1_3_2_10_2) 2007 e_1_3_2_19_2 Ruan H. (e_1_3_2_24_2) 2024 Zhou X. (e_1_3_2_38_2) 2024 e_1_3_2_51_2 e_1_3_2_2_2 Shariffdeen R. (e_1_3_2_22_2) 2021 Le V. (e_1_3_2_44_2) 2014 Just R. (e_1_3_2_41_2) 2014 Long F. (e_1_3_2_25_2) 2016 Qi Z. (e_1_3_2_27_2) 2015 Jin M. (e_1_3_2_39_2) 2023 |
| References_xml | – start-page: 691 year: 2016 end-page: 701 ident: Bib0012 article-title: Angelix: Scalable multiline program patch synthesis via symbolic analysis publication-title: Proceedings of the 38th International Conference on Software Engineering (ICSE ’16) doi: 10.1145/2884781.2884807 – start-page: 691 year: 2022 end-page: 702 ident: Bib0029 article-title: Program vulnerability repair via inductive inference publication-title: Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis – start-page: 95 year: 2018 end-page: 106 ident: Bib0031 article-title: MemFix: Static analysis-based repair of memory deallocation errors for C publication-title: Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018) doi: 10.1145/3236024.3236079 – start-page: 151 year: 2018 end-page: 162 ident: Bib0003 article-title: Static automated program repair for heap properties publication-title: Proceedings of the 40th International Conference on Software Engineering (ICSE) – start-page: 225 year: 2020 end-page: 252 ident: Bib0006 article-title: Local reasoning about the presence of bugs: Incorrectness separation logic publication-title: Computer Aided Verification – volume: 1 start-page: 226 year: 2024 end-page: 248 ident: Bib0036 article-title: ProveNFix: Temporal property guided program repair publication-title: Proceedings of the ACM on Software Engineering – start-page: 216 year: 2014 end-page: 226 ident: Bib0043 article-title: Compiler validation via equivalence modulo inputs publication-title: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14) doi: 10.1145/2594291.2594334 – volume: 30 start-page: 27 issue: 2 year: 2021 ident: Bib0018 article-title: Beyond tests: Program vulnerability repair via crash constraint extraction publication-title: ACM Transactions on Software Engineering and Methodology doi: 10.1145/3418461 – start-page: 1532 year: 2022 end-page: 1544 ident: Bib0032 article-title: NPEX: Repairing java null pointer exceptions without tests publication-title: Proceedings of the IEEE/ACM 44th International Conference on Software Engineering (ICSE) doi: 10.1145/3510003.3510186 – volume: 27 start-page: 15:1 issue: 4 year: 2018 end-page: 15:37 ident: Bib0045 article-title: Test-equivalence analysis for automatic patch generation publication-title: ACM Transactions on Software Engineering and Methodology doi: 10.1145/3241980 – volume: 6 start-page: 27 issue: OOPSLA1 year: 2022 ident: Bib0005 article-title: Finding real bugs in big programs with incorrectness logic publication-title: Proceedings of the ACM on Programming Languages doi: 10.1145/3527325 – start-page: 315 year: 2014 end-page: 326 ident: Bib0040 article-title: Efficient mutation analysis by propagating and partitioning infected execution states publication-title: Proceedings of the International Symposium on Software Testing and Analysis (ISSTA ’14) doi: 10.1145/2610384.2610388 – start-page: 459 year: 2015 end-page: 470 ident: Bib0030 article-title: Safe memory-leak fixing for C programs publication-title: Proceedings of the 37th International Conference on Software Engineering - Volume 1 (ICSE ’15) – start-page: 73 year: 2023 end-page: 77 ident: Bib0015 article-title: Cerberus: A program repair framework publication-title: Proceedings of the 45th International Conference on Software Engineering: Companion Proceedings (ICSE ’23) doi: 10.1109/ICSE-Companion58688.2023.00028 – volume: 31 start-page: 1 issue: 3 year: 2022 end-page: 45 ident: Bib0048 article-title: L2S: A framework for synthesizing the most probable program under a specification publication-title: ACM Transactions on Software Engineering and Methodology doi: 10.1145/3487570 – volume: 38 start-page: 54 issue: 1 year: 2012 end-page: 72 ident: Bib0011 article-title: GenProg: A generic method for automatic software repair publication-title: IEEE Transactions on Software Engineering doi: 10.1109/TSE.2011.104 – start-page: 459 year: 2011 end-page: 465 ident: Bib0035 article-title: Infer: An automatic program verifier for memory safety of C programs publication-title: Proceedings of the 3rd International Conference on NASA Formal Methods (NFM ’11) – start-page: 467 year: 2002 end-page: 477 ident: Bib0010 article-title: Visualization of test information to assist fault localization publication-title: Proceedings of the 24th international Conference on Software Engineering – volume: 47 start-page: 1943 issue: 9 year: 2021 end-page: 1959 ident: Bib0025 article-title: SequenceR: Sequence-to-sequence learning for end-to-end program repair publication-title: IEEE Transactions on Software Engineering doi: 10.1109/TSE.2019.2940179 – start-page: 2228 year: 2022 end-page: 2240 ident: Bib0016 article-title: Trust enhancement issues in program repair publication-title: Proceedings of the 44th International Conference on Software Engineering – start-page: 802 year: 2013 end-page: 811 ident: Bib0022 article-title: Automatic patch generation learned from human-written patches publication-title: Proceedings of the 35th International Conference on Software Engineering (ICSE) doi: 10.1109/ICSE.2013.6606626 – start-page: 13 year: 2024 ident: Bib0037 article-title: Out of sight, out of mind: Better automatic vulnerability repair by broadening input ranges and sources publication-title: Proceedings of the IEEE/ACM 46th International Conference on Software Engineering (ICSE ’24) doi: 10.1145/3597503.3639222 – year: 2007 ident: Bib0009 article-title: On the accuracy of spectrum-based fault localization publication-title: Proceedings of the International Conference on Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION) – start-page: 532 year: 2015 end-page: 543 ident: Bib0027 article-title: Is the cure worse than the disease? Overfitting in automated program repair publication-title: Proceedings of the 10th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2015) doi: 10.1145/2786805.2786825 – year: 2022 ident: Bib0001 article-title: The 2021 Common Weakness Enumeration Top 25 Most Dangerous Software Weaknesses – start-page: 298 year: 2016 end-page: 312 ident: Bib0024 article-title: Automatic patch generation by learning correct code publication-title: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’16) doi: 10.1145/2837614.2837617 – start-page: 1469 year: 2023 end-page: 1481 ident: Bib0039 article-title: Automated repair of programs from large language models publication-title: Proceedings of the IEEE/ACM 45th International Conference on Software Engineering (ICSE) doi: 10.1109/ICSE48619.2023.00128 – start-page: 1143 year: 2020 end-page: 1158 ident: Bib0047 article-title: Question Selection for Interactive Program Synthesis publication-title: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’20) doi: 10.1145/3385412.3386025 – year: 2024 ident: Bib0008 article-title: Infer:Pulse – start-page: 271 year: 2020 end-page: 283 ident: Bib0004 article-title: SAVER: Scalable, precise, and safe memory-error repair publication-title: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering (ICSE) doi: 10.1145/3377811.3380323 – start-page: 323 year: 2022 end-page: 335 ident: Bib0020 article-title: Improving program matching to automatically repair introductory programs publication-title: Proceedings of the 18th International Conference on Intelligent Tutoring Systems (ITS ’22) – start-page: 1367 year: 2024 end-page: 1382 ident: Bib0034 article-title: What IF is not enough? Fixing null pointer dereference with contextual check publication-title: Proceedings of the 33rd USENIX Security Symposium (USENIX Security ’24) – start-page: 935 year: 2022 end-page: 947 ident: Bib0014 article-title: VulRepair: A T5-based automated software vulnerability repair publication-title: Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2022) doi: 10.1145/3540250.3549098 – start-page: 24 year: 2015 end-page: 36 ident: Bib0026 article-title: An analysis of patch plausibility and correctness for generate-and-validate patch generation systems publication-title: Proceedings of the International Symposium on Software Testing and Analysis (ISSTA ’15) doi: 10.1145/2771783.2771791 – start-page: 105 year: 2020 end-page: 120 ident: Bib0049 article-title: Evolutionary grammar-based fuzzing publication-title: Search-Based Software Engineering – start-page: 349 year: 2017 end-page: 358 ident: Bib0028 article-title: Dynamic patch generation for null pointer exceptions using metaprogramming publication-title: Proceedings of the IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER) doi: 10.1109/SANER.2017.7884635 – volume: 115 start-page: 18 issue: C year: 2016 end-page: 30 ident: Bib0041 article-title: Mutation testing cost reduction by clustering overlapped mutants publication-title: Journal of Systems and Software doi: 10.1016/j.jss.2016.01.007 – volume: 49 start-page: 147 issue: 1 year: 2023 end-page: 165 ident: Bib0013 article-title: Neural transfer learning for repairing security vulnerabilities in C code publication-title: IEEE Transactions on Software Engineering doi: 10.1109/TSE.2022.3147265 – volume: 48 start-page: 1138 issue: 4 year: 2022 end-page: 1153 ident: Bib0050 article-title: Inputs from hell publication-title: IEEE Transactions on Software Engineering doi: 10.1109/TSE.2020.3013716 – start-page: 1386 year: 2016 end-page: 1393 ident: Bib0033 article-title: Automated memory leak fixing on value-flow slices for C programs publication-title: Proceedings of the 31st Annual ACM Symposium on Applied Computing (SAC ’16) doi: 10.1145/2851613.2851773 – year: 2022 ident: Bib0007 article-title: Artifact and Appendix of “Finding Real Bugs in Big Programs with Incorrectness Logic” – start-page: 1646 year: 2023 end-page: 1656 ident: Bib0038 article-title: InferFix: End-to-end program repair with LLMs publication-title: Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE ’23) doi: 10.1145/3611643.3613892 – start-page: 295 year: 2017 end-page: 306 ident: Bib0042 article-title: Faster mutation analysis via equivalence modulo states publication-title: Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA ’17) doi: 10.1145/3092703.3092714 – volume: 51 start-page: 849 issue: 10 year: 2016 end-page: 863 ident: Bib0044 article-title: Finding compiler bugs via live code mutation publication-title: ACM SIGPLAN Notices doi: 10.1145/3022671.2984038 – volume: 62 start-page: 56 issue: 12 year: 2019 end-page: 65 ident: Bib0002 article-title: Automated program repair publication-title: Communications of the ACM – start-page: 390 year: 2021 end-page: 405 ident: Bib0021 article-title: Concolic program repair publication-title: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI ’21) doi: 10.1145/3453483.3454051 – start-page: 539 year: 2019 end-page: 554 ident: Bib0017 article-title: Using safety properties to generate vulnerability patches publication-title: Proceedings of the IEEE Symposium on Security and Privacy (SP) doi: 10.1109/SP.2019.00071 – volume: 32 start-page: 1049 issue: 2 year: 2023 end-page: 331X ident: Bib0019 article-title: Hippodrome: Data race repair using static analysis summaries publication-title: ACM Transactions on Software Engineering and Methodology doi: 10.1145/3546942 – start-page: 105 year: 2024 end-page: 116 ident: Bib0023 article-title: Evolutionary testing for program repair publication-title: Proceedings of the IEEE Conference on Software Testing, Verification and Validation (ICST) doi: 10.1109/ICST60714.2024.00058 – start-page: 2456 year: 2023 end-page: 2470 ident: Bib0046 article-title: Program synthesis for complex QA on charts via probabilistic grammar based filtered iterative back-translation publication-title: Proceedings of the International Conference on Findings of the Association for Computational Linguistics (EACL ’23) – ident: e_1_3_2_20_2 doi: 10.1145/3546942 – ident: e_1_3_2_12_2 doi: 10.1109/TSE.2011.104 – start-page: 802 volume-title: Proceedings of the 35th International Conference on Software Engineering (ICSE) year: 2013 ident: e_1_3_2_23_2 – start-page: 2456 volume-title: Proceedings of the International Conference on Findings of the Association for Computational Linguistics (EACL ’23) year: 2023 ident: e_1_3_2_47_2 – start-page: 225 volume-title: Computer Aided Verification year: 2020 ident: e_1_3_2_7_2 doi: 10.1007/978-3-030-53291-8_14 – start-page: 95 volume-title: Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018) year: 2018 ident: e_1_3_2_32_2 – start-page: 1532 volume-title: Proceedings of the IEEE/ACM 44th International Conference on Software Engineering (ICSE) year: 2022 ident: e_1_3_2_33_2 – start-page: 105 volume-title: Search-Based Software Engineering year: 2020 ident: e_1_3_2_50_2 doi: 10.1007/978-3-030-59762-7_8 – ident: e_1_3_2_49_2 doi: 10.1145/3487570 – start-page: 13 volume-title: Proceedings of the IEEE/ACM 46th International Conference on Software Engineering (ICSE ’24) year: 2024 ident: e_1_3_2_38_2 – ident: e_1_3_2_14_2 doi: 10.1109/TSE.2022.3147265 – ident: e_1_3_2_8_2 – ident: e_1_3_2_18_2 doi: 10.1109/SP.2019.00071 – start-page: 151 volume-title: Proceedings of the 40th International Conference on Software Engineering (ICSE) year: 2018 ident: e_1_3_2_4_2 doi: 10.1145/3180155.3180250 – start-page: 298 volume-title: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’16) year: 2016 ident: e_1_3_2_25_2 – ident: e_1_3_2_45_2 doi: 10.1145/3022671.2984038 – start-page: 323 volume-title: Proceedings of the 18th International Conference on Intelligent Tutoring Systems (ITS ’22) year: 2022 ident: e_1_3_2_21_2 doi: 10.1007/978-3-031-09680-8_30 – start-page: 1386 volume-title: Proceedings of the 31st Annual ACM Symposium on Applied Computing (SAC ’16) year: 2016 ident: e_1_3_2_34_2 doi: 10.1145/2851613.2851773 – ident: e_1_3_2_46_2 doi: 10.1145/3241980 – ident: e_1_3_2_2_2 – start-page: 349 volume-title: Proceedings of the IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER) year: 2017 ident: e_1_3_2_29_2 – start-page: 1143 volume-title: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’20) year: 2020 ident: e_1_3_2_48_2 doi: 10.1145/3385412.3386025 – ident: e_1_3_2_19_2 doi: 10.1145/3418461 – start-page: 390 volume-title: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI ’21) year: 2021 ident: e_1_3_2_22_2 – start-page: 459 volume-title: Proceedings of the 37th International Conference on Software Engineering - Volume 1 (ICSE ’15) year: 2015 ident: e_1_3_2_31_2 – ident: e_1_3_2_9_2 – ident: e_1_3_2_26_2 doi: 10.1109/TSE.2019.2940179 – start-page: 691 volume-title: Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis year: 2022 ident: e_1_3_2_30_2 doi: 10.1145/3533767.3534387 – start-page: 467 volume-title: Proceedings of the 24th international Conference on Software Engineering year: 2002 ident: e_1_3_2_11_2 – ident: e_1_3_2_51_2 doi: 10.1109/TSE.2020.3013716 – start-page: 105 volume-title: Proceedings of the IEEE Conference on Software Testing, Verification and Validation (ICST) year: 2024 ident: e_1_3_2_24_2 – start-page: 2228 volume-title: Proceedings of the 44th International Conference on Software Engineering year: 2022 ident: e_1_3_2_17_2 doi: 10.1145/3510003.3510040 – start-page: 1646 volume-title: Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE ’23) year: 2023 ident: e_1_3_2_39_2 – ident: e_1_3_2_42_2 doi: 10.1016/j.jss.2016.01.007 – start-page: 459 volume-title: Proceedings of the 3rd International Conference on NASA Formal Methods (NFM ’11) year: 2011 ident: e_1_3_2_36_2 – start-page: 73 volume-title: Proceedings of the 45th International Conference on Software Engineering: Companion Proceedings (ICSE ’23) year: 2023 ident: e_1_3_2_16_2 – volume: 1 start-page: 226 volume-title: Proceedings of the ACM on Software Engineering year: 2024 ident: e_1_3_2_37_2 – start-page: 24 volume-title: Proceedings of the International Symposium on Software Testing and Analysis (ISSTA ’15) year: 2015 ident: e_1_3_2_27_2 doi: 10.1145/2771783.2771791 – start-page: 271 volume-title: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering (ICSE) year: 2020 ident: e_1_3_2_5_2 doi: 10.1145/3377811.3380323 – start-page: 315 volume-title: Proceedings of the International Symposium on Software Testing and Analysis (ISSTA ’14) year: 2014 ident: e_1_3_2_41_2 doi: 10.1145/2610384.2610388 – start-page: 691 volume-title: Proceedings of the 38th International Conference on Software Engineering (ICSE ’16) year: 2016 ident: e_1_3_2_13_2 – volume-title: Proceedings of the International Conference on Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION) year: 2007 ident: e_1_3_2_10_2 – start-page: 532 volume-title: Proceedings of the 10th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2015) year: 2015 ident: e_1_3_2_28_2 doi: 10.1145/2786805.2786825 – start-page: 1367 volume-title: Proceedings of the 33rd USENIX Security Symposium (USENIX Security ’24) year: 2024 ident: e_1_3_2_35_2 – start-page: 935 volume-title: Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2022) year: 2022 ident: e_1_3_2_15_2 – start-page: 1469 volume-title: Proceedings of the IEEE/ACM 45th International Conference on Software Engineering (ICSE) year: 2023 ident: e_1_3_2_40_2 – volume: 62 start-page: 56 issue: 12 year: 2019 ident: e_1_3_2_3_2 article-title: Automated program repair publication-title: Communications of the ACM doi: 10.1145/3318162 – start-page: 216 volume-title: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14) year: 2014 ident: e_1_3_2_44_2 doi: 10.1145/2594291.2594334 – volume: 6 start-page: 27 volume-title: Proceedings of the ACM on Programming Languages year: 2022 ident: e_1_3_2_6_2 – start-page: 295 volume-title: Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA ’17) year: 2017 ident: e_1_3_2_43_2 doi: 10.1145/3092703.3092714 |
| SSID | ssj0013024 |
| Score | 2.4080794 |
| Snippet | This work introduces EffFix, a tool that applies a novel static analysis-driven automated program repair (APR) technique for fixing memory errors. APR tools... |
| SourceID | unpaywall crossref acm |
| SourceType | Open Access Repository Index Database Publisher |
| StartPage | 1 |
| SubjectTerms | Formal software verification Logic and verification Maintaining software Program analysis Security and privacy Software and its engineering Software testing and debugging Theory of computation |
| SubjectTermsDisplay | Security and privacy -- Logic and verification Software and its engineering -- Formal software verification Software and its engineering -- Maintaining software Software and its engineering -- Software testing and debugging Theory of computation -- Program analysis |
| Title | EffFix: Efficient and Effective Repair of Pointer Manipulating Programs |
| URI | https://dl.acm.org/doi/10.1145/3705310 https://doi.org/10.1145/3705310 |
| UnpaywallVersion | publishedVersion |
| Volume | 34 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVEBS databaseName: Inspec with Full Text customDbUrl: eissn: 1557-7392 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0013024 issn: 1557-7392 databaseCode: ADMLS dateStart: 20060401 isFulltext: true titleUrlDefault: https://www.ebsco.com/products/research-databases/inspec-full-text providerName: EBSCOhost |
| link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LTwIxGGwIHPQiihrxgTXxWqTb1643oiAxQkiUBE-kLVtDxIUgxMevt6XLQxON5_022Xxtd6ZpZwaAc8uEiKRhjPokMIhaSEEhwX0U6gqNmVRCzzOWmi3e6NDbLutmwOlCC7N-fo8puyDCzRK7J89xZsl2FuQ6rXb10XsMRIgQ3J07ojKBhIV6L4tdf9Ohjn75hjobs2QsP97kcLgGJfX8ykrA3yB5Ls-mqqw_f_gz_vGV22ArpZGw6sd9B2TipADyi4gGmK7YXXBTM6Y-eL-EtblVhEUYKJM-9J7F9kcHLQGXgwkcGdgeOeuICWzKZOBDvZIn2PbXt173QKdee7hqoDQ7AcmARFMUcIYJ1RXGTMSERSGuMDbchELJyChKVZ8yu-IMNnaPRGJOcRgJlzkWuoPVCtkH2WSUxAcA0lA7uTW3RCeiGisVOBaktOBacyJwERRsh3tj747RS3tRBHDR8eUjL4Jmq5Kz5Uj8VnP4j5ojsBm4VF4nNMfHIDudzOITSxWmqgRy1evm3X0pnTZfiQC0UQ |
| linkProvider | Unpaywall |
| linkToUnpaywall | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LTwIxGGwIHPQiihrxWROvRbp97XojBiQmEA6S4Im03a0h4kJwiY9fb0uXhyYaz_ttsvna7kzTzgwAV5YJEUnDBMUkMIhaSEEhwTEKdZ0mTCqhFxlLnS5v9-n9gA0K4GKphdk8v8eUXRPhZondk5c4s2S7CEr9bq_x6D0GIkQIHiwcUZlAwkK9l8VuvulQR798Q52teTqVH29yPN6AklZ5bSXgb5A81-aZqunPH_6Mf3zlLtjJaSRs-HHfA4UkrYDyMqIB5it2H9w1jWmN3m9gc2EVYREGyjSG3rPY_uigJeByNIMTA3sTZx0xgx2ZjnyoV_oEe_761usB6LeaD7dtlGcnIBmQKEMBZ5hQXWfMRExYFOIKY8NNKJSMjKJUxZTZFWewsXskknCKw0i4zLHQHazWySEoppM0OQKQhtrJrbklOhHVWKnAsSClBdeaE4GroGI7PJx6d4xh3osqgMuOrx55ETRbl1yuRuK3muN_1JyA7cCl8jqhOT4FxWw2T84sVcjUeT5dvgDuabK9 |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=EffFix%3A+Efficient+and+Effective+Repair+of+Pointer+Manipulating+Programs&rft.jtitle=ACM+transactions+on+software+engineering+and+methodology&rft.au=Zhang%2C+Yuntong&rft.au=Costea%2C+Andreea&rft.au=Shariffdeen%2C+Ridwan&rft.au=McCall%2C+Davin&rft.date=2025-02-21&rft.issn=1049-331X&rft.eissn=1557-7392&rft.volume=34&rft.issue=3&rft.spage=1&rft.epage=27&rft_id=info:doi/10.1145%2F3705310&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3705310 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1049-331X&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1049-331X&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1049-331X&client=summon |