char* fname=NULL;
int mode_set=0;
int flag_set=0;
- int file_set=0;
int c;
int save_errno;
+ int print_usage=0;
char* cloned_flags = NULL;
if (argc == 1)
cloned_flags = (char *)malloc(strlen(optarg)+1);
if (cloned_flags == NULL) {
fprintf(stderr, "Insufficient memory.\n");
- exit(-1);
+ save_errno = -1;
+ goto out;
}
strncpy(cloned_flags, optarg, strlen(optarg)+1);
if (flag_table[i].flag == -1) {
fprintf(stderr, "No such flag: %s\n",
tmp);
- exit(-1);
+ save_errno = -1;
+ goto out;
}
}
- free(cloned_flags);
#ifdef DEBUG
printf("flags = %x\n", flags);
#endif
break;
default:
fprintf(stderr, "Bad parameters.\n");
- Usage_and_abort();
+ print_usage = 1;
+ goto out;
}
}
if (optind == argc) {
fprintf(stderr, "Bad parameters.\n");
- Usage_and_abort();
+ print_usage = 1;
+ goto out;
}
fname = argv[optind];
- file_set = 1;
- if (!flag_set || !file_set) {
+ if (!flag_set) {
fprintf(stderr, "Missing flag or file-name\n");
- exit(-1);
+ save_errno = -1;
+ goto out;
}
printf(", mode=%o", mode);
printf(")\n");
close(fd);
- return 0;
+ } else {
+ fprintf(stderr, "Error in opening file \"%s\"(flags=%s",
+ fname, cloned_flags);
}
- fprintf(stderr, "Error in opening file \"%s\"(flags=%s",
- fname, cloned_flags);
if (mode_set)
fprintf(stderr, ", mode=%o", mode);
fprintf(stderr, ") %d: %s\n", save_errno, strerror(save_errno));
+out:
+ if (cloned_flags)
+ free(cloned_flags);
+ if (print_usage)
+ Usage_and_abort();
+
return save_errno;
}
+
memset(¶m, 0, sizeof(param));
param.obduuid = obduuid;
while (feof(fp) == 0 && ferror(fp) ==0) {
+ fprintf(stderr, "%s:\n", mnt->mnt_dir);
if (llapi_is_lustre_mnt(mnt)) {
rc = llapi_getstripe(mnt->mnt_dir, ¶m);
if (rc)
FILE *fp;
char *path = NULL;
struct mntent *mnt = NULL;
- char mntdir[PATH_MAX] = {'\0'};
+ char *mntdir = NULL;
int ishow = 0, cooked = 0;
int c, rc = 0;
argv[0], MOUNTED, strerror(errno));
return rc;
}
+
+ if ((mntdir = malloc(PATH_MAX)) == NULL) {
+ fprintf(stderr, "error: cannot allocate %d bytes\n",
+ PATH_MAX);
+ return -ENOMEM;
+ }
+ memset(mntdir, 0, PATH_MAX);
+
if (path) {
- rc = path2mnt(path, fp, mntdir, sizeof(mntdir));
+ rc = path2mnt(path, fp, mntdir, PATH_MAX);
if (rc) {
endmntent(fp);
+ free(mntdir);
return rc;
}
endmntent(fp);
}
+ free(mntdir);
return rc;
}