summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/makedevs
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/makedevs')
-rw-r--r--meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c b/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c
index 53700c687f..003d4c3fa4 100644
--- a/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c
+++ b/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c
@@ -434,7 +434,6 @@ static int parse_devtable(FILE * devtable)
434static struct option long_options[] = { 434static struct option long_options[] = {
435 {"root", 1, NULL, 'r'}, 435 {"root", 1, NULL, 'r'},
436 {"help", 0, NULL, 'h'}, 436 {"help", 0, NULL, 'h'},
437 {"squash", 0, NULL, 'q'},
438 {"version", 0, NULL, 'v'}, 437 {"version", 0, NULL, 'v'},
439 {"devtable", 1, NULL, 'D'}, 438 {"devtable", 1, NULL, 'D'},
440 {NULL, 0, NULL, 0} 439 {NULL, 0, NULL, 0}
@@ -446,7 +445,6 @@ static char *helptext =
446 "Options:\n" 445 "Options:\n"
447 " -r, -d, --root=DIR Build filesystem from directory DIR (default: cwd)\n" 446 " -r, -d, --root=DIR Build filesystem from directory DIR (default: cwd)\n"
448 " -D, --devtable=FILE Use the named FILE as a device table file\n" 447 " -D, --devtable=FILE Use the named FILE as a device table file\n"
449 " -q, --squash Squash permissions and owners making all files be owned by root\n"
450 " -h, --help Display this help text\n" 448 " -h, --help Display this help text\n"
451 " -v, --version Display version information\n\n"; 449 " -v, --version Display version information\n\n";
452 450
@@ -463,9 +461,15 @@ int main(int argc, char **argv)
463 FILE *passwd_file = NULL; 461 FILE *passwd_file = NULL;
464 FILE *group_file = NULL; 462 FILE *group_file = NULL;
465 FILE *devtable = NULL; 463 FILE *devtable = NULL;
464 DIR *dir = NULL;
466 465
467 umask (0); 466 umask (0);
468 467
468 if (argc==1) {
469 fprintf(stderr, helptext);
470 exit(1);
471 }
472
469 while ((opt = getopt_long(argc, argv, "D:d:r:qhv", 473 while ((opt = getopt_long(argc, argv, "D:d:r:qhv",
470 long_options, &c)) >= 0) { 474 long_options, &c)) >= 0) {
471 switch (opt) { 475 switch (opt) {
@@ -484,6 +488,11 @@ int main(int argc, char **argv)
484 if (rootdir != default_rootdir) { 488 if (rootdir != default_rootdir) {
485 error_msg_and_die("root directory specified more than once"); 489 error_msg_and_die("root directory specified more than once");
486 } 490 }
491 if ((dir = opendir(optarg)) == NULL) {
492 perror_msg_and_die(optarg);
493 } else {
494 closedir(dir);
495 }
487 rootdir = xstrdup(optarg); 496 rootdir = xstrdup(optarg);
488 break; 497 break;
489 498
@@ -497,6 +506,11 @@ int main(int argc, char **argv)
497 } 506 }
498 } 507 }
499 508
509 if (argv[optind] != NULL) {
510 fprintf(stderr, helptext);
511 exit(1);
512 }
513
500 // Get name-id mapping 514 // Get name-id mapping
501 sprintf(passwd_path, "%s/etc/passwd", rootdir); 515 sprintf(passwd_path, "%s/etc/passwd", rootdir);
502 sprintf(group_path, "%s/etc/group", rootdir); 516 sprintf(group_path, "%s/etc/group", rootdir);