diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh index 852e4136..613fa767 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh @@ -125,6 +125,7 @@ fi #iso-scan (currently only for Fedora) if $GREP -q Fedora /etc/os-release; then +if /ventoy/tool/vtoydump -a /ventoy/ventoy_os_param; then if ventoy_iso_scan_check; then echo "iso_scan process ..." >> $VTLOG @@ -139,6 +140,7 @@ if $GREP -q Fedora /etc/os-release; then exit 0 fi +fi fi diff --git a/VtoyTool/vtoydump.c b/VtoyTool/vtoydump.c index c090b7e6..25c288b0 100644 --- a/VtoyTool/vtoydump.c +++ b/VtoyTool/vtoydump.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -444,6 +445,29 @@ static int vtoy_vlnk_printf(ventoy_os_param *param, char *diskname) return 1; } +static int vtoy_check_iso_path_alpnum(ventoy_os_param *param) +{ + char c; + int i = 0; + + while (param->vtoy_img_path[i]) + { + c = param->vtoy_img_path[i]; + + if (isalnum(c) || c == '_' || c == '-') + { + + } + else + { + return 1; + } + i++; + } + + return 0; +} + static int vtoy_check_device(ventoy_os_param *param, const char *device) { unsigned long long size; @@ -560,6 +584,7 @@ int vtoydump_main(int argc, char **argv) int rc; int ch; int print_path = 0; + int check_ascii = 0; int print_fs = 0; int vlnk_print = 0; char filename[256] = {0}; @@ -567,7 +592,7 @@ int vtoydump_main(int argc, char **argv) char device[64] = {0}; ventoy_os_param *param = NULL; - while ((ch = getopt(argc, argv, "c:f:p:t:s:v::")) != -1) + while ((ch = getopt(argc, argv, "a:c:f:p:t:s:v::")) != -1) { if (ch == 'f') { @@ -586,6 +611,11 @@ int vtoydump_main(int argc, char **argv) print_path = 1; strncpy(filename, optarg, sizeof(filename) - 1); } + else if (ch == 'a') + { + check_ascii = 1; + strncpy(filename, optarg, sizeof(filename) - 1); + } else if (ch == 't') { vlnk_print = 1; @@ -660,6 +690,10 @@ int vtoydump_main(int argc, char **argv) { rc = vtoy_check_device(param, device); } + else if (check_ascii) + { + rc = vtoy_check_iso_path_alpnum(param); + } else { // print os param, you can change the output format in the function diff --git a/VtoyTool/vtoytool/00/vtoytool_32 b/VtoyTool/vtoytool/00/vtoytool_32 index 18fbb9d5..556f11bd 100644 Binary files a/VtoyTool/vtoytool/00/vtoytool_32 and b/VtoyTool/vtoytool/00/vtoytool_32 differ diff --git a/VtoyTool/vtoytool/00/vtoytool_64 b/VtoyTool/vtoytool/00/vtoytool_64 index c7356336..45edfacd 100644 Binary files a/VtoyTool/vtoytool/00/vtoytool_64 and b/VtoyTool/vtoytool/00/vtoytool_64 differ diff --git a/VtoyTool/vtoytool/00/vtoytool_aa64 b/VtoyTool/vtoytool/00/vtoytool_aa64 index afd8c5a5..2546cb93 100644 Binary files a/VtoyTool/vtoytool/00/vtoytool_aa64 and b/VtoyTool/vtoytool/00/vtoytool_aa64 differ diff --git a/VtoyTool/vtoytool/00/vtoytool_m64e b/VtoyTool/vtoytool/00/vtoytool_m64e index 39e3534c..6a1283ee 100644 Binary files a/VtoyTool/vtoytool/00/vtoytool_m64e and b/VtoyTool/vtoytool/00/vtoytool_m64e differ