Nest: Fix password list parsing code

One of previous patches broke password list parsing code, fix that.
This commit is contained in:
Ondrej Zajicek (work) 2021-06-06 19:10:33 +02:00
parent ee9516dbe8
commit 8eea396baf

View file

@ -38,13 +38,18 @@ iface_patt_check(void)
} }
static inline void static inline void
init_password(const void *key, uint length, uint id) init_password_list(void)
{ {
if (!this_p_list) { if (!this_p_list) {
this_p_list = cfg_allocz(sizeof(list)); this_p_list = cfg_allocz(sizeof(list));
init_list(this_p_list); init_list(this_p_list);
password_id = 1; password_id = 1;
} }
}
static inline void
init_password(const void *key, uint length, uint id)
{
this_p_item = cfg_allocz(sizeof (struct password_item)); this_p_item = cfg_allocz(sizeof (struct password_item));
this_p_item->password = key; this_p_item->password = key;
this_p_item->length = length; this_p_item->length = length;
@ -494,6 +499,10 @@ mrtdump_flag:
/* Password lists */ /* Password lists */
password_list: password_list:
password_list_body
;
password_list_body:
PASSWORDS '{' password_items '}' PASSWORDS '{' password_items '}'
| password_item | password_item
; ;
@ -509,8 +518,8 @@ password_item:
; ;
password_item_begin: password_item_begin:
PASSWORD text { init_password($2, strlen($2), password_id++); } PASSWORD text { init_password_list(); init_password($2, strlen($2), password_id++); }
| PASSWORD BYTESTRING { init_password($2->data, $2->length, password_id++); } | PASSWORD BYTESTRING { init_password_list(); init_password($2->data, $2->length, password_id++); }
; ;
password_item_params: password_item_params: