path_parent_dir - don't do implicit strlen inside

This commit is contained in:
LibretroAdmin 2022-07-31 12:31:55 +02:00
parent 9b10579a54
commit 36edb15c5b
5 changed files with 14 additions and 12 deletions

View File

@ -5207,7 +5207,7 @@ bool input_remapping_save_file(const char *path)
/* Create output directory, if required */
strlcpy(remap_file_dir, path, sizeof(remap_file_dir));
path_parent_dir(remap_file_dir);
path_parent_dir(remap_file_dir, strlen(remap_file_dir));
if (!string_is_empty(remap_file_dir) &&
!path_is_directory(remap_file_dir) &&

View File

@ -370,8 +370,9 @@ static void frontend_ps2_init(void *data)
getcwd(cwd, sizeof(cwd));
#if !defined(IS_SALAMANDER) && !defined(DEBUG)
// If it is not salamander we need to go one level up for set the CWD.
path_parent_dir(cwd);
/* If it is not Salamander, we need to go one level
* up for setting the CWD. */
path_parent_dir(cwd, strlen(cwd));
#endif
if (pfsModuleLoaded)
hddMounted = mount_hdd_partition();

View File

@ -449,9 +449,12 @@ bool fill_pathname_parent_dir_name(char *out_dir,
void fill_pathname_parent_dir(char *out_dir,
const char *in_dir, size_t size)
{
size_t len = 0;
if (out_dir != in_dir)
strlcpy(out_dir, in_dir, size);
path_parent_dir(out_dir);
len = strlcpy(out_dir, in_dir, size);
else
len = strlen(out_dir);
path_parent_dir(out_dir, len);
}
/**
@ -538,20 +541,17 @@ void path_basedir(char *path)
/**
* path_parent_dir:
* @path : path
* @len : length of @path
*
* Extracts parent directory by mutating path.
* Assumes that path is a directory. Keeps trailing '/'.
* If the path was already at the root directory, returns empty string
**/
void path_parent_dir(char *path)
void path_parent_dir(char *path, size_t len)
{
size_t len = 0;
if (!path)
return;
len = strlen(path);
if (len && PATH_CHAR_IS_SLASH(path[len - 1]))
{
bool path_was_absolute = path_is_absolute(path);

View File

@ -121,7 +121,7 @@ bool path_mkdir(const char *dir)
if (!(basedir = strdup(dir)))
return false;
path_parent_dir(basedir);
path_parent_dir(basedir, strlen(basedir));
if (!*basedir || !strcmp(basedir, dir))
{

View File

@ -161,12 +161,13 @@ void path_basedir(char *path);
/**
* path_parent_dir:
* @path : path
* @len : length of @path
*
* Extracts parent directory by mutating path.
* Assumes that path is a directory. Keeps trailing '/'.
* If the path was already at the root directory, returns empty string
**/
void path_parent_dir(char *path);
void path_parent_dir(char *path, size_t len);
/**
* path_resolve_realpath: