Skip to content

Commit

Permalink
Fix bug when parsing malformed .less file.
Browse files Browse the repository at this point in the history
  • Loading branch information
gwsw committed Sep 12, 2021
1 parent 66bb536 commit d07da71
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions decode.c
Expand Up @@ -785,6 +785,7 @@ new_lesskey(buf, len, sysvar)
int sysvar;
{
char *p;
char *end;
int c;
int n;

Expand All @@ -797,23 +798,30 @@ new_lesskey(buf, len, sysvar)
buf[len-1] != C2_END_LESSKEY_MAGIC)
return (-1);
p = buf + 4;
end = buf + len;
for (;;)
{
c = *p++;
switch (c)
{
case CMD_SECTION:
n = gint(&p);
if (n < 0 || p+n >= end)
return (-1);
add_fcmd_table(p, n);
p += n;
break;
case EDIT_SECTION:
n = gint(&p);
if (n < 0 || p+n >= end)
return (-1);
add_ecmd_table(p, n);
p += n;
break;
case VAR_SECTION:
n = gint(&p);
if (n < 0 || p+n >= end)
return (-1);
add_var_table((sysvar) ?
&list_sysvar_tables : &list_var_tables, p, n);
p += n;
Expand Down

0 comments on commit d07da71

Please sign in to comment.