---
title: Draft report
author:
date: 2019-10-25
...

\let\underscore\_
\renewcommand{\_}{\discretionary{\underscore}{}{\underscore}}

<!-- This file contains additional remarks that will be added to
     automatically generated content by Frama-C's Markdown-report plugin. For
     any section of the document, you can write pandoc markdown content
     between the BEGIN and END comments. In addition, the plug-in will
     consider any \<!-- INCLUDE file.md --\> comment (without backslashes) as
     a directive to include the content of file.md in the corresponding
     section. Please don't alter the structure of the document as it is used
     by the plugin to associate content to the relevant section.
-->

# Introduction {#intro}

<!-- You can add here some overall introduction to the analysis -->

<!-- BEGIN_REMARK -->

This is a test from the Juliet test suite showing an example of buffer
overflow (CWE126). The `good` functions should not trigger any alarm, while
the `bad` ones have indeed an error.

<!-- END_REMARK -->

# Context of the analysis {#context}

## Input files {#c-input}

<!-- You can add here some remarks about the set of files that is considered
     by Frama-C
-->

<!-- BEGIN_REMARK -->

<!-- END_REMARK -->

The C source files (not including the headers `.h` files)
that have been considered during the analysis are the following:

* `./*.c`



## Configuration {#options}

<!-- You can add here some remarks about the options used for the analysis
-->

<!-- BEGIN_REMARK -->

<!-- END_REMARK -->

### EVA Domains {#domains}

<!-- You can give more information about the choice of EVA domains -->

<!-- BEGIN_REMARK -->

<!-- END_REMARK -->

### Stubbed Functions {#stubs}

<!-- You can add here general comments about the stubs that have been used
-->

<!-- BEGIN_REMARK -->

<!-- END_REMARK -->

<!-- No stubs have been used -->

# Coverage {#coverage}

There are 6 function definitions that are not stubbed. They represent 50 statements, of which 50 are potentially reachable through EVA, resulting in a **statement coverage of 100.0%** with respect to the entire application.


There were potentially 6 functions syntactically reachable from main.
These functions contain 50 statements, of which 50 are potentially reachable according to EVA, resulting in a **statement coverage of 100.0%** with respect to the perimeter set by this entry point.


<!-- You can comment on the coverage obtained by EVA -->

<!-- BEGIN_REMARK -->

<!-- END_REMARK -->

# Warnings {#warnings}

<!-- you can comment on each individual error -->

## Warning 0 (cwe126.c:24) {#warn-0}

```log
Message: out of bounds read. assert \valid_read(data + i);
```


<!-- BEGIN_REMARK -->

<!-- END_REMARK -->

# Results of the analysis {#alarms}

## Alarm 0 at cwe126.c:24 {#Alarm-0}

```acsl
assert mem_access: \valid_read(data + i);
```


<!-- BEGIN_REMARK -->

This alarm is real: Eva correctly identified the issue and did not report
any spurious alarm anywhere else.

<!-- END_REMARK -->

# Conclusion {#conclusion}

<!-- You can put here some concluding remarks -->

<!-- BEGIN_REMARK -->

<!-- END_REMARK -->
