diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c index b7e25d68a..ae4e3d0c8 100644 --- a/e2fsprogs/fsck.c +++ b/e2fsprogs/fsck.c @@ -988,8 +988,7 @@ static int fs_match(struct fs_info *fs, struct fs_type_compile *cmp) /* Check if we should ignore this filesystem. */ static int ignore(struct fs_info *fs) { - const char * const *ip; - int wanted = 0; + int wanted; char *s; /* @@ -1007,15 +1006,11 @@ static int ignore(struct fs_info *fs) if (!fs_match(fs, &fs_type_compiled)) return 1; /* Are we ignoring this type? */ - for(ip = ignored_types; *ip; ip++) - if (strcmp(fs->type, *ip) == 0) return 1; + if(compare_string_array(ignored_types, fs->type)) + return 1; /* Do we really really want to check this fs? */ - for(ip = really_wanted; *ip; ip++) - if (strcmp(fs->type, *ip) == 0) { - wanted = 1; - break; - } + wanted = compare_string_array(really_wanted, fs->type); /* See if the program is available. */ s = find_fsck(fs->type); diff --git a/include/libbb.h b/include/libbb.h index b7dd48775..70a9336d8 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -466,7 +466,7 @@ typedef struct { } procps_status_t; extern procps_status_t * procps_scan(int save_user_arg0); -extern unsigned short compare_string_array(const char *string_array[], const char *key); +extern unsigned short compare_string_array(const char * const string_array[], const char *key); extern int my_query_module(const char *name, int which, void **buf, size_t *bufsize, size_t *ret); diff --git a/libbb/compare_string_array.c b/libbb/compare_string_array.c index 993b46266..8961e003e 100644 --- a/libbb/compare_string_array.c +++ b/libbb/compare_string_array.c @@ -17,7 +17,8 @@ #include /* returns the array number of the string */ -extern unsigned short compare_string_array(const char *string_array[], const char *key) +extern unsigned short +compare_string_array(const char * const string_array[], const char *key) { unsigned short i;