@@ -55,14 +55,33 @@ static void __create_new_dfile(exe_disk_file_t *dfile, unsigned size,
5555
5656 const char * sp ;
5757 char sname [64 ];
58- for (sp = name ; * sp ; ++ sp )
58+ char read_bytes_name [64 ];
59+ char write_bytes_name [64 ];
60+ for (sp = name ; * sp ; ++ sp ){
5961 sname [sp - name ] = * sp ;
62+ read_bytes_name [sp - name ] = * sp ;
63+ write_bytes_name [sp - name ] = * sp ;
64+ }
6065 memcpy (& sname [sp - name ], "-stat" , 6 );
66+ memcpy (& read_bytes_name [sp - name ], "-read" , 6 );
67+ memcpy (& write_bytes_name [sp - name ], "-write" , 7 );
6168
6269 assert (size );
6370
6471 dfile -> size = size ;
6572 dfile -> contents = malloc (dfile -> size );
73+
74+ unsigned * ptr_read = malloc (sizeof (unsigned ));
75+ unsigned * ptr_write = malloc (sizeof (unsigned ));
76+ klee_make_symbolic (ptr_read , sizeof (unsigned ), read_bytes_name );
77+ klee_make_symbolic (ptr_write , sizeof (unsigned ), write_bytes_name );
78+ memcpy (& dfile -> read_bytes_symbolic , ptr_read , sizeof (unsigned ));
79+ memcpy (& dfile -> write_bytes_symbolic , ptr_write , sizeof (unsigned ));
80+ free (ptr_read );
81+ free (ptr_write );
82+ dfile -> read_bytes_real = 0 ;
83+ dfile -> write_bytes_real = 0 ;
84+
6685 if (!dfile -> contents )
6786 klee_report_error (__FILE__ , __LINE__ , "out of memory in klee_init_env" , "user.err" );
6887 klee_make_symbolic (dfile -> contents , dfile -> size , name );
0 commit comments