libsepol/cil: Update symtab nprim field when adding or removing datums

This field is suppose to be used to track the number of primary names in
the symtab. It was not being updated or used.

Increment the nprim field when a new datum is added to the symtab and
decrement the field when a datum is removed.

Signed-off-by: James Carter <jwcart2@gmail.com>
This commit is contained in:
James Carter 2021-01-06 13:43:25 -05:00 committed by Nicolas Iooss
parent 156dd0de5c
commit 5d021d6604
No known key found for this signature in database
GPG Key ID: C191415F340DAAA0
1 changed files with 2 additions and 0 deletions

View File

@ -92,6 +92,7 @@ int cil_symtab_insert(symtab_t *symtab, hashtab_key_t key, struct cil_symtab_dat
datum->name = key;
datum->fqn = key;
datum->symtab = symtab;
symtab->nprim++;
cil_list_append(datum->nodes, CIL_NODE, node);
} else if (rc == SEPOL_EEXIST) {
cil_list_append(datum->nodes, CIL_NODE, node);
@ -111,6 +112,7 @@ void cil_symtab_remove_datum(struct cil_symtab_datum *datum)
}
hashtab_remove(symtab->table, datum->name, NULL, NULL);
symtab->nprim--;
datum->symtab = NULL;
}