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...

Full description

Saved in:
Bibliographic Details
Published inACM transactions on software engineering and methodology Vol. 34; no. 3; pp. 1 - 27
Main Authors Zhang, Yuntong, Costea, Andreea, Shariffdeen, Ridwan, McCall, Davin, Roychoudhury, Abhik
Format Journal Article
LanguageEnglish
Published New York, NY ACM 21.02.2025
Subjects
Online AccessGet full text
ISSN1049-331X
1557-7392
1557-7392
DOI10.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