MCPcopy Create free account
hub / github.com/cgsecurity/testdisk / menu_photorec_cli

Function menu_photorec_cli

src/phcli.c:146–289  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

144#endif
145
146int menu_photorec_cli(list_part_t *list_part, struct ph_param *params, struct ph_options *options, alloc_data_t*list_search_space)
147{
148 unsigned int user_blocksize=0;
149 init_mode_t mode_init_space=(td_list_empty(&list_search_space->list)?INIT_SPACE_WHOLE:INIT_SPACE_PREINIT);
150 params->partition=(list_part->next!=NULL ? list_part->next->part : list_part->part);
151 /*@ assert valid_partition(params->partition); */
152 /*@
153 @ loop invariant valid_read_string(params->cmd_run);
154 @ loop invariant \valid_function(params->disk->description);
155 @ loop invariant valid_list_search_space(list_search_space);
156 @ loop invariant valid_disk(params->disk);
157 @*/
158 while(1)
159 {
160 skip_comma_in_command(&params->cmd_run);
161 if(params->cmd_run[0]=='\0')
162 return 0;
163 if(need_to_stop!=0)
164 return 0;
165 if(check_command(&params->cmd_run,"search",6)==0)
166 {
167#ifndef DISABLED_FOR_FRAMAC
168 if(mode_init_space==INIT_SPACE_EXT2_GROUP)
169 {
170 params->blocksize=ext2_fix_group(list_search_space, params->disk, params->partition);
171 if(params->blocksize==0)
172 {
173 log_error("Not a valid ext2/ext3/ext4 filesystem");
174 return -1;
175 }
176 }
177 else if(mode_init_space==INIT_SPACE_EXT2_INODE)
178 {
179 params->blocksize=ext2_fix_inode(list_search_space, params->disk, params->partition);
180 if(params->blocksize==0)
181 {
182 log_error("Not a valid ext2/ext3/ext4 filesystem");
183 return -1;
184 }
185 }
186#endif
187 if(td_list_empty(&list_search_space->list))
188 {
189 init_search_space(list_search_space, params->disk, params->partition);
190 }
191 if(params->carve_free_space_only>0)
192 {
193 params->blocksize=remove_used_space(params->disk, params->partition, list_search_space);
194 }
195 if(user_blocksize > 0)
196 params->blocksize=user_blocksize;
197 return 1;
198 }
199#ifndef DISABLED_FOR_FRAMAC
200 else if(check_command(&params->cmd_run,"options",7)==0)
201 {
202 interface_options_photorec_cli(options, &params->cmd_run);
203 }

Callers 1

menu_photorecFunction · 0.85

Calls 13

td_list_emptyFunction · 0.85
skip_comma_in_commandFunction · 0.85
check_commandFunction · 0.85
ext2_fix_groupFunction · 0.85
ext2_fix_inodeFunction · 0.85
init_search_spaceFunction · 0.85
remove_used_spaceFunction · 0.85
file_select_cliFunction · 0.85
get_int_from_commandFunction · 0.85
change_geometry_cliFunction · 0.85
MALLOCFunction · 0.85

Tested by

no test coverage detected