summaryrefslogtreecommitdiff
path: root/common.mk
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2019-09-06 23:18:26 +0900
committerYusuke Endoh <mame@ruby-lang.org>2019-09-06 23:35:20 +0900
commitade1283ca276f7d589ffd3539fbc7b9817f682d5 (patch)
tree902c05ceda34aaae0711a5321e8c98414a217dce /common.mk
parent055b44109316bfc5461d6ac820619f893cea536c (diff)
Fix a use-after-free bug by avoiding rb_str_new_frozen
`str2 = rb_str_new_frozen(str1)` seems to make str1 a shared string that refers to str2, but str2 is not marked as STR_IS_SHARED_M nor STR_NOFREE. `rb_fstring(str2)` frees str2's ptr because it is not marked, and the free'ed pointer is the same as str1's ptr. After that, accessing str1 may cause use-after-free memory corruption. I guess this is a bug of rb_str_new_frozen, but I'm completely unsure what it should be; the string states and flags are not documented. So, this is a workaround for [Bug #16136]. I confirmed that rspec of activeadmin runs gracefully.
Diffstat (limited to 'common.mk')
0 files changed, 0 insertions, 0 deletions