libstdc++: Fix null dereference in pb_ds containers
This fixes ubsan errors:
ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp:533:15: runtime error: member access within null pointer of type 'struct entry'
libstdc++-v3/ChangeLog:
* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
(find_key_pointer(key_const_reference, false_type))
(find_key_pointer(key_const_reference, true_type)): Do not
dereference null pointer.
(cherry picked from commit ca871701c2
)
This commit is contained in:
parent
cea2b1a52b
commit
00ddf72a6f
@ -524,13 +524,16 @@ namespace __gnu_pbds
|
||||
|
||||
resize_base::notify_find_search_end();
|
||||
|
||||
#ifdef _GLIBCXX_DEBUG
|
||||
if (p_e == 0)
|
||||
PB_DS_CHECK_KEY_DOES_NOT_EXIST(r_key)
|
||||
{
|
||||
PB_DS_CHECK_KEY_DOES_NOT_EXIST(r_key)
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
PB_DS_CHECK_KEY_EXISTS(r_key)
|
||||
#endif
|
||||
return &p_e->m_value;
|
||||
{
|
||||
PB_DS_CHECK_KEY_EXISTS(r_key)
|
||||
return &p_e->m_value;
|
||||
}
|
||||
}
|
||||
|
||||
inline pointer
|
||||
@ -550,13 +553,16 @@ namespace __gnu_pbds
|
||||
|
||||
resize_base::notify_find_search_end();
|
||||
|
||||
#ifdef _GLIBCXX_DEBUG
|
||||
if (p_e == 0)
|
||||
PB_DS_CHECK_KEY_DOES_NOT_EXIST(r_key)
|
||||
{
|
||||
PB_DS_CHECK_KEY_DOES_NOT_EXIST(r_key)
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
PB_DS_CHECK_KEY_EXISTS(r_key)
|
||||
#endif
|
||||
return &p_e->m_value;
|
||||
{
|
||||
PB_DS_CHECK_KEY_EXISTS(r_key)
|
||||
return &p_e->m_value;
|
||||
}
|
||||
}
|
||||
|
||||
inline bool
|
||||
|
Loading…
Reference in New Issue
Block a user