Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
dadigang
Ventoy
Commits
672632a0
Commit
672632a0
authored
May 14, 2021
by
longpanda
Browse files
Add isopwd wimpwd efipwd imgpwd vhdpwd vtoypwd option in password plugin (#898)
parent
d07aa6ce
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
75 additions
and
12 deletions
+75
-12
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_cmd.c
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_cmd.c
+1
-1
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h
+9
-6
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_plugin.c
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_plugin.c
+65
-5
No files found.
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_cmd.c
View file @
672632a0
...
...
@@ -134,7 +134,7 @@ static const char *g_menu_class[] =
"vtoyiso"
,
"vtoywim"
,
"vtoyefi"
,
"vtoyimg"
,
"vtoyvhd"
,
"vtoyvtoy"
};
static
const
char
*
g_menu_prefix
[]
=
const
char
*
g_menu_prefix
[
img_type_max
]
=
{
"iso"
,
"wim"
,
"efi"
,
"img"
,
"vhd"
,
"vtoy"
};
...
...
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h
View file @
672632a0
...
...
@@ -194,12 +194,14 @@ typedef struct ventoy_iso9660_vd
#pragma pack()
#define img_type_start 0
#define img_type_iso 0
#define img_type_wim 1
#define img_type_efi 2
#define img_type_img 3
#define img_type_vhd 4
#define img_type_vtoy 5
#define img_type_max 6
typedef
struct
img_info
{
...
...
@@ -282,6 +284,7 @@ extern ventoy_img_chunk_list g_img_chunk_list;
extern
ventoy_img_chunk_list
g_wimiso_chunk_list
;
extern
char
*
g_wimiso_path
;
extern
char
g_arch_mode_suffix
[
64
];
extern
const
char
*
g_menu_prefix
[
img_type_max
];
extern
int
g_ventoy_debug
;
void
ventoy_debug
(
const
char
*
fmt
,
...);
...
...
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_plugin.c
View file @
672632a0
...
...
@@ -43,6 +43,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
char
g_arch_mode_suffix
[
64
];
static
char
g_iso_disk_name
[
128
];
static
vtoy_password
g_boot_pwd
;
static
vtoy_password
g_file_type_pwd
[
img_type_max
];
static
install_template
*
g_install_template_head
=
NULL
;
static
dud
*
g_dud_head
=
NULL
;
static
menu_password
*
g_pwd_head
=
NULL
;
...
...
@@ -809,8 +810,26 @@ static int ventoy_plugin_parse_pwdstr(char *pwdstr, vtoy_password *pwd)
return
0
;
}
static
int
ventoy_plugin_get_pwd_type
(
const
char
*
pwd
)
{
int
i
;
char
pwdtype
[
64
];
for
(
i
=
0
;
pwd
&&
i
<
(
int
)
ARRAY_SIZE
(
g_menu_prefix
);
i
++
)
{
grub_snprintf
(
pwdtype
,
sizeof
(
pwdtype
),
"%spwd"
,
g_menu_prefix
[
i
]);
if
(
grub_strcmp
(
pwdtype
,
pwd
)
==
0
)
{
return
img_type_start
+
i
;
}
}
return
-
1
;
}
static
int
ventoy_plugin_pwd_entry
(
VTOY_JSON
*
json
,
const
char
*
isodisk
)
{
int
type
=
-
1
;
const
char
*
iso
=
NULL
;
const
char
*
pwd
=
NULL
;
VTOY_JSON
*
pNode
=
NULL
;
...
...
@@ -844,6 +863,10 @@ static int ventoy_plugin_pwd_entry(VTOY_JSON *json, const char *isodisk)
{
ventoy_plugin_parse_pwdstr
(
pNode
->
unData
.
pcStrVal
,
&
g_boot_pwd
);
}
else
if
((
type
=
ventoy_plugin_get_pwd_type
(
pNode
->
pcName
))
>=
0
)
{
ventoy_plugin_parse_pwdstr
(
pNode
->
unData
.
pcStrVal
,
g_file_type_pwd
+
type
);
}
else
if
(
pNode
->
pcName
&&
grub_strcmp
(
"menupwd"
,
pNode
->
pcName
)
==
0
)
{
for
(
pCNode
=
pNode
->
pstChild
;
pCNode
;
pCNode
=
pCNode
->
pstNext
)
...
...
@@ -888,6 +911,7 @@ static int ventoy_plugin_pwd_entry(VTOY_JSON *json, const char *isodisk)
static
int
ventoy_plugin_pwd_check
(
VTOY_JSON
*
json
,
const
char
*
isodisk
)
{
int
type
=
-
1
;
char
*
pos
=
NULL
;
const
char
*
iso
=
NULL
;
const
char
*
pwd
=
NULL
;
...
...
@@ -913,6 +937,17 @@ static int ventoy_plugin_pwd_check(VTOY_JSON *json, const char *isodisk)
grub_printf
(
"Invalid bootpwd.
\n
"
);
}
}
else
if
((
type
=
ventoy_plugin_get_pwd_type
(
pNode
->
pcName
))
>=
0
)
{
if
(
0
==
ventoy_plugin_parse_pwdstr
(
pNode
->
unData
.
pcStrVal
,
NULL
))
{
grub_printf
(
"%s:<%s>
\n
"
,
pNode
->
pcName
,
pNode
->
unData
.
pcStrVal
);
}
else
{
grub_printf
(
"Invalid pwd <%s>
\n
"
,
pNode
->
unData
.
pcStrVal
);
}
}
else
if
(
pNode
->
pcName
&&
grub_strcmp
(
"menupwd"
,
pNode
->
pcName
)
==
0
)
{
grub_printf
(
"
\n
"
);
...
...
@@ -2475,14 +2510,18 @@ int ventoy_plugin_load_dud(dud *node, const char *isopart)
static
const
vtoy_password
*
ventoy_plugin_get_password
(
const
char
*
isopath
)
{
int
i
;
int
len
;
const
char
*
pos
=
NULL
;
menu_password
*
node
=
NULL
;
if
((
!
g_pwd_head
)
||
(
!
isopath
)
)
if
(
!
isopath
)
{
return
NULL
;
}
if
(
g_pwd_head
)
{
len
=
(
int
)
grub_strlen
(
isopath
);
for
(
node
=
g_pwd_head
;
node
;
node
=
node
->
next
)
{
...
...
@@ -2491,6 +2530,27 @@ static const vtoy_password * ventoy_plugin_get_password(const char *isopath)
return
&
(
node
->
password
);
}
}
}
while
(
*
isopath
)
{
if
(
*
isopath
==
'.'
)
{
pos
=
isopath
;
}
isopath
++
;
}
if
(
pos
)
{
for
(
i
=
0
;
i
<
(
int
)
ARRAY_SIZE
(
g_menu_prefix
);
i
++
)
{
if
(
g_file_type_pwd
[
i
].
type
&&
0
==
grub_strcasecmp
(
pos
+
1
,
g_menu_prefix
[
i
]))
{
return
g_file_type_pwd
+
i
;
}
}
}
return
NULL
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment