mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2025-01-11 17:04:19 +01:00
Fix compatibility regression after r364117.
Properly handle the case, when some opcode keywords follow after the `frag` opcode without additional options. Reported by: Evgeniy Khramtsov <evgeniy at khramtsov org>
This commit is contained in:
parent
effd82ca70
commit
b876085f55
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=365628
@ -4560,17 +4560,24 @@ read_options:
|
||||
fill_cmd(cmd, O_DIVERTED, 0, 2);
|
||||
break;
|
||||
|
||||
case TOK_FRAG:
|
||||
fill_flags_cmd(cmd, O_FRAG, f_ipoff, *av);
|
||||
/*
|
||||
* Compatibility: no argument after "frag"
|
||||
* keyword equals to "frag offset".
|
||||
*/
|
||||
if (cmd->arg1 == 0)
|
||||
cmd->arg1 = 0x1;
|
||||
else
|
||||
case TOK_FRAG: {
|
||||
uint32_t set = 0, clear = 0;
|
||||
|
||||
if (*av != NULL && fill_flags(f_ipoff, *av, NULL,
|
||||
&set, &clear) == 0)
|
||||
av++;
|
||||
else {
|
||||
/*
|
||||
* Compatibility: no argument after "frag"
|
||||
* keyword equals to "frag offset".
|
||||
*/
|
||||
set = 0x01;
|
||||
clear = 0;
|
||||
}
|
||||
fill_cmd(cmd, O_FRAG, 0,
|
||||
(set & 0xff) | ( (clear & 0xff) << 8));
|
||||
break;
|
||||
}
|
||||
|
||||
case TOK_LAYER2:
|
||||
fill_cmd(cmd, O_LAYER2, 0, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user