mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-09 13:12:37 -05:00
replace strlcpy with strmemccpy
replace applicable calls to strlcpy with calls to strmemccpy which null terminates on truncation in theory the strmemccpy calls should be slightly faster since they don't traverse the rest of the source string on truncation but I seriously doubt there is too much of that going on in the code base Change-Id: Ia0251514e36a6242bbf3f03c5e0df123aba60ed2
This commit is contained in:
parent
b25a9d8f99
commit
f6c719d7ec
43 changed files with 236 additions and 174 deletions
|
|
@ -185,7 +185,7 @@ static struct folder* load_folder(struct folder* parent, char *folder)
|
|||
if (len >= sizeof(fullpath))
|
||||
goto fail;
|
||||
}
|
||||
strlcpy(&fullpath[len], folder, sizeof(fullpath) - len);
|
||||
strmemccpy(&fullpath[len], folder, sizeof(fullpath) - len);
|
||||
logf("load_folder: [%s]", fullpath);
|
||||
|
||||
dir = opendir(fullpath);
|
||||
|
|
@ -518,7 +518,7 @@ static int select_paths(struct folder* root, const char* filenames)
|
|||
lastfnp = fnp;
|
||||
if (len <= 0 || len + 1 >= buflen)
|
||||
continue;
|
||||
strlcpy(buf, sstr, len + 1);
|
||||
strmemccpy(buf, sstr, len + 1);
|
||||
struct child *item = find_from_filename(buf, root);
|
||||
if (item)
|
||||
item->state = SELECTED;
|
||||
|
|
@ -563,7 +563,7 @@ static void save_folders_r(struct folder *root, char* dst, size_t maxlen, size_t
|
|||
int dlen = strlen(dst);
|
||||
if (dlen + len >= maxlen)
|
||||
continue;
|
||||
strlcpy(&dst[dlen], buffer_front, maxlen - dlen);
|
||||
strmemccpy(&dst[dlen], buffer_front, maxlen - dlen);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -68,8 +68,8 @@ const char *option_get_valuestring(const struct settings_list *setting,
|
|||
if ((setting->flags & F_BOOL_SETTING) == F_BOOL_SETTING)
|
||||
{
|
||||
bool val = (bool)temp_var;
|
||||
strlcpy(buffer, str(val? setting->bool_setting->lang_yes :
|
||||
setting->bool_setting->lang_no), buf_len);
|
||||
strmemccpy(buffer, str(val? setting->bool_setting->lang_yes :
|
||||
setting->bool_setting->lang_no), buf_len);
|
||||
}
|
||||
#if 0 /* probably dont need this one */
|
||||
else if ((setting->flags & F_FILENAME) == F_FILENAME)
|
||||
|
|
@ -121,7 +121,7 @@ const char *option_get_valuestring(const struct settings_list *setting,
|
|||
const struct choice_setting *info = setting->choice_setting;
|
||||
if (info->talks[(int)temp_var] < LANG_LAST_INDEX_IN_ARRAY)
|
||||
{
|
||||
strlcpy(buffer, str(info->talks[(int)temp_var]), buf_len);
|
||||
strmemccpy(buffer, str(info->talks[(int)temp_var]), buf_len);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -133,7 +133,7 @@ const char *option_get_valuestring(const struct settings_list *setting,
|
|||
{
|
||||
int value = (int)temp_var;
|
||||
char *val = P2STR(setting->choice_setting->desc[value]);
|
||||
strlcpy(buffer, val, buf_len);
|
||||
strmemccpy(buffer, val, buf_len);
|
||||
}
|
||||
}
|
||||
return str;
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ int skin_backdrop_assign(char* backdrop, char *bmpdir,
|
|||
}
|
||||
if (free >= 0)
|
||||
{
|
||||
strlcpy(backdrops[free].name, filename, MAX_PATH);
|
||||
strmemccpy(backdrops[free].name, filename, MAX_PATH);
|
||||
backdrops[free].buffer = NULL;
|
||||
backdrops[free].screen = screen;
|
||||
backdrops[free].ref_count = 1;
|
||||
|
|
|
|||
|
|
@ -2548,7 +2548,7 @@ bool skin_data_load(enum screen_type screen, struct wps_data *wps_data,
|
|||
{
|
||||
/* get the bitmap dir */
|
||||
char *dot = strrchr(buf, '.');
|
||||
strlcpy(bmpdir, buf, dot - buf + 1);
|
||||
strmemccpy(bmpdir, buf, dot - buf + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ char* get_dir(char* buf, int buf_size, const char* path, int level)
|
|||
return NULL;
|
||||
|
||||
len = MIN(last_sep - sep, buf_size - 1);
|
||||
strlcpy(buf, sep + 1, len + 1);
|
||||
strmemccpy(buf, sep + 1, len + 1);
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
#include "appevents.h"
|
||||
#include "screens.h"
|
||||
#include "screen_access.h"
|
||||
#include "strlcpy.h"
|
||||
#include "skin_parser.h"
|
||||
#include "skin_buffer.h"
|
||||
#include "skin_engine/skin_engine.h"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue