]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
Add cmdline check
authorlongpanda <admin@ventoy.net>
Thu, 17 Feb 2022 03:09:31 +0000 (11:09 +0800)
committerlongpanda <admin@ventoy.net>
Thu, 17 Feb 2022 03:09:31 +0000 (11:09 +0800)
Vlnk/src/main_windows.c
Vlnk/vs/VentoyVlnk/Release/VentoyVlnk.exe

index 34f75483a99fedd59204184a6b0ddec97aba88f0..089512026cd9d8ac9da8bae36db974fe059369d4 100644 (file)
@@ -393,12 +393,12 @@ static BOOL IsSupportedVlnkSuffix(WCHAR *FileName)
 \r
     if (len > 9)\r
     {\r
-        if (lstrcmp(FileName - 9, L".vlnk.iso") == 0 ||\r
-            lstrcmp(FileName - 9, L".vlnk.img") == 0 || \r
-            lstrcmp(FileName - 9, L".vlnk.wim") == 0 || \r
-            lstrcmp(FileName - 9, L".vlnk.vhd") == 0 || \r
-            lstrcmp(FileName - 9, L".vlnk.efi") == 0 || \r
-            lstrcmp(FileName - 9, L".vlnk.dat") == 0)\r
+        if (lstrcmp(FileName + len - 9, L".vlnk.iso") == 0 ||\r
+            lstrcmp(FileName + len - 9, L".vlnk.img") == 0 ||\r
+            lstrcmp(FileName + len - 9, L".vlnk.wim") == 0 ||\r
+            lstrcmp(FileName + len - 9, L".vlnk.vhd") == 0 ||\r
+            lstrcmp(FileName + len - 9, L".vlnk.efi") == 0 ||\r
+            lstrcmp(FileName + len - 9, L".vlnk.dat") == 0)\r
         {\r
             return TRUE;\r
         }\r
@@ -407,8 +407,8 @@ static BOOL IsSupportedVlnkSuffix(WCHAR *FileName)
 \r
     if (len > 10)\r
     {\r
-        if (lstrcmp(FileName - 10, L".vlnk.vhdx") == 0 ||\r
-            lstrcmp(FileName - 9, L".vlnk.vtoy") == 0)\r
+        if (lstrcmp(FileName + len - 10, L".vlnk.vhdx") == 0 ||\r
+            lstrcmp(FileName + len - 10, L".vlnk.vtoy") == 0)\r
         {\r
             return TRUE;\r
         }\r
@@ -879,6 +879,13 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
             return 1;\r
         }\r
 \r
+        if (!IsSupportedVlnkSuffix(g_CmdOutFile))\r
+        {\r
+            LogW(L"File <<%ls>> contains invalid vlnk suffix!\n", g_CmdOutFile);\r
+            VtoyMessageBox(NULL, g_msg_lang[MSGID_INVALID_SUFFIX], g_msg_lang[MSGID_ERROR], MB_OK | MB_ICONERROR);\r
+            return 1;\r
+        }\r
+\r
         return CreateVlnk(NULL, g_CurDirW, g_CmdInFile, g_CmdOutFile);\r
     }\r
     else\r
index ac8bfa3c2fa1e8faafa4af353ce9bd728bb98794..0f479e1053d6ab21c2cc38b48ce01bff2c03cdc1 100644 (file)
Binary files a/Vlnk/vs/VentoyVlnk/Release/VentoyVlnk.exe and b/Vlnk/vs/VentoyVlnk/Release/VentoyVlnk.exe differ