diff options
Diffstat (limited to 'e2fsprogs/fsck.c')
-rw-r--r-- | e2fsprogs/fsck.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c index d32f396e9..d2d312e5c 100644 --- a/e2fsprogs/fsck.c +++ b/e2fsprogs/fsck.c | |||
@@ -199,7 +199,7 @@ static char *base_device(const char *device) | |||
199 | } | 199 | } |
200 | 200 | ||
201 | /* Handle DAC 960 devices */ | 201 | /* Handle DAC 960 devices */ |
202 | if (strncmp(cp, "rd/", 3) == 0) { | 202 | if (is_prefixed_with(cp, "rd/")) { |
203 | cp += 3; | 203 | cp += 3; |
204 | if (cp[0] != 'c' || !isdigit(cp[1]) | 204 | if (cp[0] != 'c' || !isdigit(cp[1]) |
205 | || cp[2] != 'd' || !isdigit(cp[3])) | 205 | || cp[2] != 'd' || !isdigit(cp[3])) |
@@ -224,9 +224,9 @@ static char *base_device(const char *device) | |||
224 | #if ENABLE_FEATURE_DEVFS | 224 | #if ENABLE_FEATURE_DEVFS |
225 | /* Now let's handle devfs (ugh) names */ | 225 | /* Now let's handle devfs (ugh) names */ |
226 | len = 0; | 226 | len = 0; |
227 | if (strncmp(cp, "ide/", 4) == 0) | 227 | if (is_prefixed_with(cp, "ide/")) |
228 | len = 4; | 228 | len = 4; |
229 | if (strncmp(cp, "scsi/", 5) == 0) | 229 | if (is_prefixed_with(cp, "scsi/")) |
230 | len = 5; | 230 | len = 5; |
231 | if (len) { | 231 | if (len) { |
232 | cp += len; | 232 | cp += len; |
@@ -237,38 +237,38 @@ static char *base_device(const char *device) | |||
237 | * some number of digits at each level, abort. | 237 | * some number of digits at each level, abort. |
238 | */ | 238 | */ |
239 | for (hier = devfs_hier; *hier; hier++) { | 239 | for (hier = devfs_hier; *hier; hier++) { |
240 | len = strlen(*hier); | 240 | cp = is_prefixed_with(cp, *hier); |
241 | if (strncmp(cp, *hier, len) != 0) | 241 | if (!cp) |
242 | goto errout; | 242 | goto errout; |
243 | cp += len; | 243 | while (*cp != '/' && *cp != '\0') { |
244 | while (*cp != '/' && *cp != 0) { | ||
245 | if (!isdigit(*cp)) | 244 | if (!isdigit(*cp)) |
246 | goto errout; | 245 | goto errout; |
247 | cp++; | 246 | cp++; |
248 | } | 247 | } |
248 | //FIXME: what if *cp = '\0' now? cp++ moves past it!!! | ||
249 | cp++; | 249 | cp++; |
250 | } | 250 | } |
251 | cp[-1] = 0; | 251 | cp[-1] = '\0'; |
252 | return str; | 252 | return str; |
253 | } | 253 | } |
254 | 254 | ||
255 | /* Now handle devfs /dev/disc or /dev/disk names */ | 255 | /* Now handle devfs /dev/disc or /dev/disk names */ |
256 | disk = 0; | 256 | disk = NULL; |
257 | if (strncmp(cp, "discs/", 6) == 0) | 257 | if (is_prefixed_with(cp, "discs/")) |
258 | disk = "disc"; | 258 | disk = "disc"; |
259 | else if (strncmp(cp, "disks/", 6) == 0) | 259 | else if (is_prefixed_with(cp, "disks/")) |
260 | disk = "disk"; | 260 | disk = "disk"; |
261 | if (disk) { | 261 | if (disk) { |
262 | cp += 6; | 262 | cp += 6; |
263 | if (strncmp(cp, disk, 4) != 0) | 263 | cp = is_prefixed_with(cp, disk); |
264 | if (!cp) | ||
264 | goto errout; | 265 | goto errout; |
265 | cp += 4; | 266 | while (*cp != '/' && *cp != '\0') { |
266 | while (*cp != '/' && *cp != 0) { | ||
267 | if (!isdigit(*cp)) | 267 | if (!isdigit(*cp)) |
268 | goto errout; | 268 | goto errout; |
269 | cp++; | 269 | cp++; |
270 | } | 270 | } |
271 | *cp = 0; | 271 | *cp = '\0'; |
272 | return str; | 272 | return str; |
273 | } | 273 | } |
274 | #endif | 274 | #endif |
@@ -593,8 +593,8 @@ static void fsck_device(struct fs_info *fs /*, int interactive */) | |||
593 | type, "from fstab"); | 593 | type, "from fstab"); |
594 | } else if (fstype | 594 | } else if (fstype |
595 | && (fstype[0] != 'n' || fstype[1] != 'o') /* != "no" */ | 595 | && (fstype[0] != 'n' || fstype[1] != 'o') /* != "no" */ |
596 | && strncmp(fstype, "opts=", 5) != 0 | 596 | && !is_prefixed_with(fstype, "opts=") |
597 | && strncmp(fstype, "loop", 4) != 0 | 597 | && !is_prefixed_with(fstype, "loop") |
598 | && !strchr(fstype, ',') | 598 | && !strchr(fstype, ',') |
599 | ) { | 599 | ) { |
600 | type = fstype; | 600 | type = fstype; |
@@ -627,8 +627,8 @@ static int device_already_active(char *device) | |||
627 | #ifdef BASE_MD | 627 | #ifdef BASE_MD |
628 | /* Don't check a soft raid disk with any other disk */ | 628 | /* Don't check a soft raid disk with any other disk */ |
629 | if (instance_list | 629 | if (instance_list |
630 | && (!strncmp(instance_list->device, BASE_MD, sizeof(BASE_MD)-1) | 630 | && (is_prefixed_with(instance_list->device, BASE_MD) |
631 | || !strncmp(device, BASE_MD, sizeof(BASE_MD)-1)) | 631 | || is_prefixed_with(device, BASE_MD)) |
632 | ) { | 632 | ) { |
633 | return 1; | 633 | return 1; |
634 | } | 634 | } |
@@ -895,7 +895,7 @@ static void compile_fs_type(char *fs_type) | |||
895 | if (strcmp(s, "loop") == 0) | 895 | if (strcmp(s, "loop") == 0) |
896 | /* loop is really short-hand for opts=loop */ | 896 | /* loop is really short-hand for opts=loop */ |
897 | goto loop_special_case; | 897 | goto loop_special_case; |
898 | if (strncmp(s, "opts=", 5) == 0) { | 898 | if (is_prefixed_with(s, "opts=")) { |
899 | s += 5; | 899 | s += 5; |
900 | loop_special_case: | 900 | loop_special_case: |
901 | fs_type_flag[num] = negate ? FS_TYPE_FLAG_NEGOPT : FS_TYPE_FLAG_OPT; | 901 | fs_type_flag[num] = negate ? FS_TYPE_FLAG_NEGOPT : FS_TYPE_FLAG_OPT; |