- strcpy (buf, *argv);
- status=stat(buf, &statBuf);
- if (status != -1 && status != ENOENT ) {
- fprintf(stderr, "%s: File exists\n", buf);
- exit( FALSE);
- }
- if (parentFlag == TRUE) {
- strcat( buf, "/");
- createPath(buf, mode);
- }
- else {
- if (mkdir (buf, mode) != 0) {
- perror(buf);
- exit( FALSE);
- }
+ if (strlen(*argv) > PATH_MAX - 1) {
+ fprintf(stderr, name_too_long, "mkdir");
+ exit FALSE;
+ }
+ strcpy(buf, *argv);
+ status = stat(buf, &statBuf);
+ if (parentFlag == FALSE && status != -1 && errno != ENOENT) {
+ fprintf(stderr, "%s: File exists\n", buf);
+ exit FALSE;
+ }
+ if (parentFlag == TRUE) {
+ strcat(buf, "/");
+ createPath(buf, mode);
+ } else {
+ if (mkdir(buf, mode) != 0 && parentFlag == FALSE) {
+ perror(buf);
+ exit FALSE;
+ }
+ }
+ argc--;
+ argv++;