hello: The iftop is very userful while inspecting the flows between hosts. And I want to add some log features in our environment. The functions serv_hash_create and ns_hash_create are allocating and returning a hash: hash_type* ns_hash_create() { hash_type* hash_table; hash_table = xcalloc(hash_table_size, sizeof *hash_table); hash_table->size = hash_table_size; hash_table->compare = &ns_hash_compare; hash_table->hash = &ns_hash_hash; hash_table->delete_key = &ns_hash_delete_key; hash_table->copy_key = &ns_hash_copy_key; hash_initialise(hash_table); return hash_table; } hash_type* serv_hash_create() { hash_type* hash_table; hash_table = xcalloc(hash_table_size, sizeof *hash_table); hash_table->size = hash_table_size; hash_table->compare = &serv_hash_compare; hash_table->hash = &serv_hash_hash; hash_table->delete_key = &serv_hash_delete_key; hash_table->copy_key = &serv_hash_copy_key; hash_initialise(hash_table); return hash_table; }
Is the clause " hash_table = xcalloc(hash_table_size, sizeof *hash_table);" a bug? It allocate a hash_type array with hash_table_size items. Should be " hash_table = xcalloc(1, sizeof *hash_table);"? And allocate the hash buckets with " hash_initialise(hash_table);"
Thanks.