mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-19 04:45:28 +00:00
78c5a90ebf
The bug is exposed by mkfs test case 009, with D=asan. We are leaking memory of parent_dir_entry->path() which ,except the rootdir, is allocated by strdup(). Before fixing it, unifiy the allocation of parent_dir_entry() to heap allocation. Then fix it by adding "free(parent_dir_entry->path);" in traverse_directory() and error handler. Issue: #92 Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
/*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public
|
|
* License v2 as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public
|
|
* License along with this program.
|
|
*/
|
|
|
|
/*
|
|
* Defines and functions declarations for mkfs --rootdir
|
|
*/
|
|
|
|
#ifndef __BTRFS_MKFS_ROOTDIR_H__
|
|
#define __BTRFS_MKFS_ROOTDIR_H__
|
|
|
|
#include "kernel-lib/list.h"
|
|
|
|
struct directory_name_entry {
|
|
const char *dir_name;
|
|
char *path;
|
|
ino_t inum;
|
|
struct list_head list;
|
|
};
|
|
|
|
int btrfs_mkfs_fill_dir(const char *source_dir, struct btrfs_root *root,
|
|
bool verbose);
|
|
u64 btrfs_mkfs_size_dir(const char *dir_name, u32 sectorsize, u64 min_dev_size,
|
|
u64 meta_profile, u64 data_profile);
|
|
int btrfs_mkfs_shrink_fs(struct btrfs_fs_info *fs_info, u64 *new_size_ret,
|
|
bool shrink_file_size);
|
|
|
|
#endif
|