#4172 libecl : Guard null pointer access

This commit is contained in:
Magne Sjaastad 2019-03-05 21:11:14 +01:00
parent b120d0a2c1
commit dfd4539786

View File

@ -822,18 +822,21 @@ static void ecl_smspec_install_special_keys( ecl_smspec_type * ecl_smspec , smsp
switch(var_type) {
case(ECL_SMSPEC_COMPLETION_VAR):
/* Three level indexing: variable -> well -> string(cell_nr)*/
if (!hash_has_key(ecl_smspec->well_completion_var_index , well))
hash_insert_hash_owned_ref(ecl_smspec->well_completion_var_index , well , hash_alloc() , hash_free__);
if (well)
{
hash_type * cell_hash = (hash_type*)hash_get(ecl_smspec->well_completion_var_index , well);
char cell_str[16];
sprintf(cell_str , "%d" , num);
if (!hash_has_key(cell_hash , cell_str))
hash_insert_hash_owned_ref(cell_hash , cell_str , hash_alloc() , hash_free__);
/* Three level indexing: variable -> well -> string(cell_nr)*/
if (!hash_has_key(ecl_smspec->well_completion_var_index , well))
hash_insert_hash_owned_ref(ecl_smspec->well_completion_var_index , well , hash_alloc() , hash_free__);
{
hash_type * var_hash = (hash_type*)hash_get(cell_hash , cell_str);
hash_insert_ref(var_hash , keyword , smspec_node );
hash_type * cell_hash = (hash_type*)hash_get(ecl_smspec->well_completion_var_index , well);
char cell_str[16];
sprintf(cell_str , "%d" , num);
if (!hash_has_key(cell_hash , cell_str))
hash_insert_hash_owned_ref(cell_hash , cell_str , hash_alloc() , hash_free__);
{
hash_type * var_hash = (hash_type*)hash_get(cell_hash , cell_str);
hash_insert_ref(var_hash , keyword , smspec_node );
}
}
}
break;
@ -866,11 +869,14 @@ static void ecl_smspec_install_special_keys( ecl_smspec_type * ecl_smspec , smsp
ecl_smspec->num_regions = util_int_max(ecl_smspec->num_regions , num);
break;
case (ECL_SMSPEC_WELL_VAR):
if (!hash_has_key(ecl_smspec->well_var_index , well))
hash_insert_hash_owned_ref(ecl_smspec->well_var_index , well , hash_alloc() , hash_free__);
if (well)
{
hash_type * var_hash = (hash_type*)hash_get(ecl_smspec->well_var_index , well);
hash_insert_ref(var_hash , keyword , smspec_node );
if (!hash_has_key(ecl_smspec->well_var_index , well))
hash_insert_hash_owned_ref(ecl_smspec->well_var_index , well , hash_alloc() , hash_free__);
{
hash_type * var_hash = (hash_type*)hash_get(ecl_smspec->well_var_index , well);
hash_insert_ref(var_hash , keyword , smspec_node );
}
}
break;
case(ECL_SMSPEC_MISC_VAR):