char default_mountopts[512] = "";
struct mkfs_opts mkop;
int ret;
+ int ret2;
memset(&mkop, 0, sizeof(mkop));
mkop.mo_ldd = *ldd;
mkop.mo_ldd.ldd_flags &= ~LDD_F_UPDATE;
- strcpy(mkop.mo_device, source);
+ if (strlen(source) > sizeof(mkop.mo_device)-1) {
+ fatal();
+ fprintf(stderr, "Device name too long: %s\n", source);
+ return -E2BIG;
+ }
+ strncpy(mkop.mo_device, source, sizeof(mkop.mo_device));
ret = osd_prepare_lustre(&mkop,
default_mountopts, sizeof(default_mountopts),
fprintf(stderr, "failed to write local files: %s\n",
strerror(ret));
}
- loop_cleanup(&mkop);
+
+ ret2 = loop_cleanup(&mkop);
+ if (ret == 0)
+ ret = ret2;
return ret;
}