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

Function reiser_dir

src/rfs_dir.c:421–464  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

419}
420
421static int reiser_dir(disk_t *disk_car, const partition_t *partition, dir_data_t *dir_data, const unsigned long int cluster, file_info_t *dir_list)
422{
423 struct rfs_dir_struct *ls=(struct rfs_dir_struct*)dir_data->private_dir_data;
424 reiserfs_dir_t *dir;
425 reiserfs_dir_entry_t entry;
426 ls->dir_list=dir_list;
427 if (!(dir = reiserfs_dir_open(ls->current_fs, dir_data->current_directory))) {
428 screen_buffer_add("Couldn't open dir\n");
429 log_error("Couldn't open dir\n");
430 return -1;
431 }
432 while (reiserfs_dir_read(dir, &entry))
433 {
434 char name[MAX_NAME_LEN(DEFAULT_BLOCK_SIZE)];
435 reiserfs_object_t *entity;
436 strncpy(name,dir_data->current_directory,sizeof(name));
437 strcat(name,"/");
438 strcat(name,entry.de_name);
439 if((entity=reiserfs_object_create(ls->current_fs,name,1)))
440 {
441 unsigned int thislen;
442 file_info_t *new_file=(file_info_t *)MALLOC(sizeof(*new_file));
443 thislen=(MAX_NAME_LEN(DEFAULT_BLOCK_SIZE)<DIR_NAME_LEN?MAX_NAME_LEN(DEFAULT_BLOCK_SIZE):DIR_NAME_LEN);
444 memcpy(new_file->name,entry.de_name,thislen);
445 new_file->name[thislen-1]='\0';
446
447 new_file->status=0;
448 new_file->st_ino=entity->stat.st_ino;
449 new_file->st_mode=entity->stat.st_mode;
450// new_file->st_nlink=entity->stat.st_nlink;
451 new_file->st_uid=entity->stat.st_uid;
452 new_file->st_gid=entity->stat.st_gid;
453 new_file->st_size=entity->stat.st_size;
454// new_file->st_blksize=entity->stat.st_blksize;
455 new_file->td_atime=entity->stat.st_atime;
456 new_file->td_mtime=entity->stat.st_mtime;
457 new_file->td_ctime=entity->stat.st_ctime;
458 reiserfs_object_free(entity);
459 td_list_add_tail(&new_file->list, &dir_list->list);
460 }
461 }
462 reiserfs_dir_close(dir);
463 return 0;
464}
465
466static void dir_partition_reiser_close(dir_data_t *dir_data)
467{

Callers

nothing calls this directly

Calls 3

screen_buffer_addFunction · 0.85
MALLOCFunction · 0.85
td_list_add_tailFunction · 0.85

Tested by

no test coverage detected