On 11/28/2015 12:00 PM, Chao Yu wrote: > On 11/28/15 11:07 AM, Sheng Yong wrote: >> Before copying an user specified extension to extension_list, check if it >> is already in the list. >> >> Signed-off-by: Sheng Yong <shengyo...@huawei.com> >> --- >> mkfs/f2fs_format.c | 23 ++++++++++++++++++++++- >> 1 file changed, 22 insertions(+), 1 deletion(-) >> >> diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c >> index 176bdea..0a621ae 100644 >> --- a/mkfs/f2fs_format.c >> +++ b/mkfs/f2fs_format.c >> @@ -118,6 +118,21 @@ const char *media_ext_lists[] = { >> NULL >> }; >> >> +static bool is_extension_exist(const char *name, const int len) >> +{ >> + int i, ret; >> + >> + for (i = 0; i < F2FS_MAX_EXTENSION; i++) { > > i < last_extension_position_in_list ? Then we have to define a new global variable or add a new parameter to pass the last position in the function. > >> + char *ext = (char *) sb.extension_list[i]; >> + ret = strcmp(ext, name); > > if (!strcmp(ext, name)) > return 1; > >> + >> + if (ret == 0) >> + return 1; >> + } >> + >> + return 0; >> +} >> + >> static void configure_extension_list(void) >> { >> const char **extlist = media_ext_lists; >> @@ -143,8 +158,14 @@ static void configure_extension_list(void) >> /* add user ext list */ >> ue = strtok(ext_str, ","); >> while (ue != NULL) { >> + strtrim(&ue); >> name_len = strlen(ue); >> - memcpy(sb.extension_list[i++], ue, name_len); >> + if (name_len > 7) { > > Shouldn't this be fixed in another patch? This is much better than what I did :)
thanks, Sheng > > How about: > > diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c > index 176bdea..78612e4 100644 > --- a/mkfs/f2fs_format.c > +++ b/mkfs/f2fs_format.c > @@ -144,7 +144,12 @@ static void configure_extension_list(void) > ue = strtok(ext_str, ","); > while (ue != NULL) { > name_len = strlen(ue); > + if (name_len >= 8) { > + MSG(0, "\tWarn: Extension name (%s) is too long\n", ue); > + goto next; > + } > memcpy(sb.extension_list[i++], ue, name_len); > +next: > ue = strtok(NULL, ","); > if (i >= F2FS_MAX_EXTENSION) > break; > > Thanks, > >> + MSG(0, "\tError: Extension '%s' too long\n", ue); >> + exit(1); >> + } >> + if (!is_extension_exist(ue, name_len)) >> + memcpy(sb.extension_list[i++], ue, name_len); >> ue = strtok(NULL, ","); >> if (i >= F2FS_MAX_EXTENSION) >> break; >> > > . > ------------------------------------------------------------------------------ _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel