aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSheng Yong <shengyong1@huawei.com>2015-11-30 10:41:06 +0000
committerGreg Wallace <greg@gregtwallace.com>2016-01-19 22:02:19 -0500
commit5da4595135326c72bda44e760a098d5d2e5db667 (patch)
tree6801c0a2678e2bf3ce7e4cade8357d32cabf4c89
parente89637e006e7bb2cc660f6f6d42ca7da8005a687 (diff)
downloadandroid_external_f2fs-tools-5da4595135326c72bda44e760a098d5d2e5db667.tar.gz
android_external_f2fs-tools-5da4595135326c72bda44e760a098d5d2e5db667.tar.bz2
android_external_f2fs-tools-5da4595135326c72bda44e760a098d5d2e5db667.zip
mkfs.f2fs: avoid dumplicate extensions
Before copying an user specified extension to extension_list, check if it is already in the list. User specified extensions are delimitted by token either ',' or ' '. Change-Id: I107542643f79f96dde19c1d3a9d375a771392acf Signed-off-by: Sheng Yong <shengyong1@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r--mkfs/f2fs_format.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c
index 176bdea..a29d7ef 100644
--- a/mkfs/f2fs_format.c
+++ b/mkfs/f2fs_format.c
@@ -118,6 +118,19 @@ const char *media_ext_lists[] = {
NULL
};
+static bool is_extension_exist(const char *name)
+{
+ int i;
+
+ for (i = 0; i < F2FS_MAX_EXTENSION; i++) {
+ char *ext = (char *)sb.extension_list[i];
+ if (!strcmp(ext, name))
+ return 1;
+ }
+
+ return 0;
+}
+
static void configure_extension_list(void)
{
const char **extlist = media_ext_lists;
@@ -141,11 +154,12 @@ static void configure_extension_list(void)
return;
/* add user ext list */
- ue = strtok(ext_str, ",");
+ ue = strtok(ext_str, ", ");
while (ue != NULL) {
name_len = strlen(ue);
- memcpy(sb.extension_list[i++], ue, name_len);
- ue = strtok(NULL, ",");
+ if (!is_extension_exist(ue))
+ memcpy(sb.extension_list[i++], ue, name_len);
+ ue = strtok(NULL, ", ");
if (i >= F2FS_MAX_EXTENSION)
break;
}