diff --git a/Compte_rendu_Yassine_Ettayeb.docx b/Compte_rendu_Yassine_Ettayeb.docx
new file mode 100644
index 0000000000000000000000000000000000000000..6164e6ac2a046ae479cc8e50237d942a45441d99
Binary files /dev/null and b/Compte_rendu_Yassine_Ettayeb.docx differ
diff --git a/config/cert_exp_33_realloc.c b/config/cert_exp_33_realloc.c
index 4933f33d3dd936ac882ed51e558d06b3e84e4f63..67c4f7757a5d1d2cf65b0267bb179ad441048a5f 100644
--- a/config/cert_exp_33_realloc.c
+++ b/config/cert_exp_33_realloc.c
@@ -1,42 +1,45 @@
 #include <stdlib.h>
 #include <stdio.h>
-
-
+#include <string.h>
+ 
 enum { OLD_SIZE = 10, NEW_SIZE = 20 };
-
-int *resize_array(int *array, size_t count) {
-  if (0 == count) {
+  
+int *resize_array(int *array, size_t old_count, size_t new_count) {
+  if (0 == new_count) {
     return 0;
   }
-
-  int *ret = (int *)realloc(array, count * sizeof(int)); //@ split ret==0; 
+  
+  int *ret = (int *)realloc(array, new_count * sizeof(int));
   if (!ret) {
     free(array);
     return 0;
   }
-
+  
+  if (new_count > old_count) {
+    memset(ret + old_count, 0, (new_count - old_count) * sizeof(int));
+  }
+  
   return ret;
 }
-
+  
 void func(void) {
-
+  
   int *array = (int *)malloc(OLD_SIZE * sizeof(int));
   if (0 == array) {
     /* Handle error */
     return;
   }
-
+  
   for (size_t i = 0; i < OLD_SIZE; ++i) {
     array[i] = i;
-    Frama_C_show_each_init_array(array[i]);
   }
-
-  array = resize_array(array, NEW_SIZE);
+  
+  array = resize_array(array, OLD_SIZE, NEW_SIZE);
   if (0 == array) {
     /* Handle error */
     return;
   }
-
+  
   for (size_t i = 0; i < NEW_SIZE; ++i) {
     printf("%d ", array[i]);
   }
diff --git a/config/cwe20.c b/config/cwe20.c
index 9a723653eb1eb7474248a502ab6c75b6e3b0d4e4..79b53e1a1da920f4d9c1b82f23ae32fd092ba203 100644
--- a/config/cwe20.c
+++ b/config/cwe20.c
@@ -1,5 +1,8 @@
 #include <stdio.h>
 #include <stdlib.h>
+#include <stddef.h>
+
+
 void die(const char* s) {
     printf("%s",s);
     exit(2);
@@ -24,10 +27,28 @@ int main () {
     if ( EOF == error ){
     die("No integer passed: Die evil hacker!\n");
     }
+    
+    // Vérification des dimensions pour éviter des erreurs de mémoire
+    if (m <= 0 || n <= 0 || m > MAX_DIM || n > MAX_DIM) {
+        die("Invalid board size: Die evil hacker!\n");
+    }
     if ( m > MAX_DIM || n > MAX_DIM ) {
     die("Value too large: Die evil hacker!\n");
     }
+    
+    //@ split m;
+    //@ split n;
+    
     board = (board_square_t*) malloc( m * n * sizeof(board_square_t));
+    
+    // Vérification si malloc a échoué
+    if (!board) {
+        return 2;
+    }
+    
+    //@ split m;
+    //@ split n;
+    
     for (int i = 0; i < m; i++) {
         for (int j = 0; j < n; j++) {
             board[n*i+j] = 0;