Exterminator: Automatically Correcting Memory Errors with High Probability.

Programs written in C and C++ are susceptible to memory errors, including buffer overflows and dangling pointers. These errors, which can lead to crashes, erroneous execution, and security vulnerabilities, are notoriously costly to repair. Tracking down their location in the source code is difficult...

Descripción completa

Detalles Bibliográficos
Publicado en:Communications of the ACM Vol. 51; no. 12; pp. 87 - 96
Autores principales: Novark, Gene, Berger, Emery D., Zorn, Benjamin G.
Formato: Artículo
Publicado: Association for Computing Machinery Dec2008
Materias:
Acceso en línea:Ver este registro en EBSCOhost
fields @attributes:
  recordID: 1
pdfLink:
plink: https://search.ebscohost.com/login.aspx?direct=true&db=hlh&AN=35609285&site=ehost-live
header:
  @attributes:
    shortDbName: hlh
    uiTerm: 35609285
    longDbName: Humanities International Complete
    uiTag: AN
  controlInfo:
    bkinfo:
    jinfo:
      jid:
        00010782
        ACM
      jtl: Communications of the ACM
      issn: 00010782
      maglogo: N
    pubinfo:
      dt: Dec2008
      vid: 51
      iid: 12
      pid: 68
      pub: Association for Computing Machinery
    artinfo:
      ui:
        35609285
        10.1145/1409360.1409382
      ppf: 87
      ppct: 9
      formats:
      tig:
        atl: Exterminator: Automatically Correcting Memory Errors with High Probability.
      aug:
        au:
          Novark, Gene
          Berger, Emery D.
          Zorn, Benjamin G.
        affil:
          Department of Computer Science, University of Massachusetts, Amherst, MA.
          Microsoft Research, Redmond, WA.
      su:
        Debugging
        Computer software correctness
        Source code
        C (Computer program language)
        C++
        Computer programmers
      sug:
        subj:
          Debugging
          Computer software correctness
          Source code
          C (Computer program language)
          C++
          Computer programmers
      ab: Programs written in C and C++ are susceptible to memory errors, including buffer overflows and dangling pointers. These errors, which can lead to crashes, erroneous execution, and security vulnerabilities, are notoriously costly to repair. Tracking down their location in the source code is difficult, even when the full memory state of the program is available. Once the errors are finally found, fixing them remains challenging: even for critical security-sensitive bugs, the average time between initial reports and the issuance of a patch is nearly 1 month. We present Exterminator, a system that automatically corrects heap-based memory errors without programmer intervention. Exterminator exploits randomization to pinpoint errors with high precision. From this information, Exterminator derives runtime patches that fix these errors both in current and subsequent executions. In addition, Exterminator enables collaborative bug correction by merging patches generated by multiple users. We present analytical and empirical results that demonstrate Exterminator's effectiveness at detecting and correcting both injected and real faults.
      pubtype: Periodical
      doctype: Article
      src: R
    language: English
    refInfo:
    copyright:
      @attributes:
        flag: Y
      dt:
        @attributes:
          year: 2008
    holdings:
      @attributes:
        islocal: N