[ruby-core:118582] [Ruby master Bug#20629] Ruby infinite loop when raising+rescuing inside a RUBY_INTERNAL_EVENT_NEWOBJ
From:
"ivoanjo (Ivo Anjo) via ruby-core" <ruby-core@...>
Date:
2024-07-12 08:02:54 UTC
List:
ruby-core #118582
SXNzdWUgIzIwNjI5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgaXZvYW5qbyAoSXZvIEFuam8pLg0KDQoN ClRoYW5rcyBmb3IgcG9pbnRpbmcgbWUgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiEgSSBoYWQgY29t cGxldGVseSBmb3Jnb3R0ZW4gdGhhdCBiaXQgb2YgaW5mbyDwn5iFLiBJIGd1ZXNzIEkgaGFkIHRv IHNwZW5kIGEgZmV3IGhvdXJzIGxlYXJuaW5nIGl0IHRoZSBoYXJkIHdheS4NCg0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQnVnICMyMDYyOTogUnVieSBpbmZpbml0 ZSBsb29wIHdoZW4gcmFpc2luZytyZXNjdWluZyBpbnNpZGUgYSBSVUJZX0lOVEVSTkFMX0VWRU5U X05FV09CSg0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIwNjI5I2NoYW5nZS0x MDkxMDUNCg0KKiBBdXRob3I6IGl2b2Fuam8gKEl2byBBbmpvKQ0KKiBTdGF0dXM6IENsb3NlZA0K KiBydWJ5IC12OiBydWJ5IDMuMy40ICgyMDI0LTA3LTA5IHJldmlzaW9uIGJlMTA4OWM4ZWMpIFt4 ODZfNjQtbGludXhdDQoqIEJhY2twb3J0OiAzLjE6IFVOS05PV04sIDMuMjogVU5LTk9XTiwgMy4z OiBVTktOT1dODQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIyMg QmFja2dyb3VuZA0KDQpIZXkhIFdoaWxlIHdvcmtpbmcgb24gdGhlIFtEYXRhZG9nIFJ1YnkgUHJv ZmlsZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhZG9nL2RkLXRyYWNlLXJiKSBJIHJhbiBpbnRv IGEgd2VpcmQgc2l0dWF0aW9uIHdoZXJlIHRoZSBSdWJ5IFZNIGxvY2tzIHVwIGFzIGl0IGdldHMg c3R1Y2sgaW4gYW4gaW5maW5pdGUgbG9vcCBpbiB2bV9zeW5jLmM6DQoNCmBgYGMNCgkgICAgICAg IHdoaWxlIChyZWNvcmRlZF9sb2NrX3JlYyA8IGN1cnJlbnRfbG9ja19yZWMpIHsNCgkgICAgICAg ICAgICBSQl9WTV9MT0NLX0xFQVZFX0xFVigmY3VycmVudF9sb2NrX3JlYyk7DQoJICAgICAgICB9 DQpgYGANCg0KLi4uYmVjYXVzZSBsZWF2ZSBpcyB0aGlzOg0KDQpgYGBjDQoJc3RhdGljIGlubGlu ZSB2b2lkDQoJcmJfdm1fbG9ja19sZWF2ZSh1bnNpZ25lZCBpbnQgKmxldiwgY29uc3QgY2hhciAq ZmlsZSwgaW50IGxpbmUpDQoJew0KCSAgICBpZiAocmJfbXVsdGlfcmFjdG9yX3AoKSkgew0KCSAg ICAgICAgcmJfdm1fbG9ja19sZWF2ZV9ib2R5KGxldiBBUFBFTkRfTE9DQVRJT05fUEFSQU1TKTsN CgkgICAgfQ0KCX0NCmBgYA0KDQouLi5hbmQgYHJiX211bHRpX3JhY3Rvcl9wKClgIGlzIGFsd2F5 cyBgZmFsc2VgIGFzIEknbSBub3QgdXNpbmcgUmFjdG9ycy4NCg0KIyMjIEhvdyB0byByZXByb2R1 Y2UNCg0KKEkgaW5jbHVkZSBhIHppcCB3aXRoIGFsbCB0aGUgZmlsZXMgbmVlZGVkIHRvIHJlcHJv ZHVjZSB0aGlzLCBubyBuZWVkIHRvIGNvcHktcGFzdGUgZnJvbSBoZXJlISkNCg0KSW5zaWRlIGEg bmF0aXZlIGV4dGVuc2lvbiwgSSdtIGNyZWF0aW5nIGEgYFJVQllfSU5URVJOQUxfRVZFTlRfTkVX T0JKYC4gSW5zaWRlIGl0LCBJJ20gcmFpc2luZyBhbmQgY2F0Y2hpbmcgYW4gZXhjZXB0aW9uLCB0 byBzaW11bGF0ZSBhIChoYW5kbGVkKSBidWcgaW4gb3VyIGNvZGU6DQoNCmBgYGMNCiNpbmNsdWRl IDxydWJ5Lmg+DQojaW5jbHVkZSA8cnVieS90aHJlYWQuaD4NCiNpbmNsdWRlIDxydWJ5L3RocmVh ZF9uYXRpdmUuaD4NCiNpbmNsdWRlIDxydWJ5L2RlYnVnLmg+DQoNCnN0YXRpYyBWQUxVRSByYWlz ZV9leGNlcHRpb24oVkFMVUUgdW51c2VkKSB7DQogIGZwcmludGYoc3RkZXJyLCAiUmFpc2luZyFc biIpOw0KICByYl9yYWlzZShyYl9lUnVudGltZUVycm9yLCAiVGhpcyBpcyBhIHRlc3QhIik7DQp9 DQoNCnN0YXRpYyBWQUxVRSBpZ25vcmVfZmFpbHVyZShWQUxVRSBzZWxmX2luc3RhbmNlLCBWQUxV RSBleGNlcHRpb24pIHsNCiAgZnByaW50ZihzdGRlcnIsICJDYXVnaHQhXG4iKTsNCiAgcmV0dXJu IFFuaWw7DQp9DQoNCnN0YXRpYyB2b2lkIG9uX25ld29ial9ldmVudChWQUxVRSB0cmFjZXBvaW50 X2RhdGEsIHZvaWQgKnVudXNlZCkgew0KICBmcHJpbnRmKHN0ZGVyciwgIkluc2lkZSBvbl9uZXdv YmpfZXZlbnRcbiIpOw0KICAvLyBWQUxVRSBrbGFzcyA9IHJiX2NsYXNzX29mKHJiX3RyYWNlYXJn X29iamVjdChyYl90cmFjZWFyZ19mcm9tX3RyYWNlcG9pbnQodHJhY2Vwb2ludF9kYXRhKSkpOw0K ICAvLyByYl9wKGtsYXNzKTsNCiAgcmJfcmVzY3VlMigNCiAgICByYWlzZV9leGNlcHRpb24sDQog ICAgUW5pbCwNCiAgICBpZ25vcmVfZmFpbHVyZSwNCiAgICBRbmlsLA0KICAgIHJiX2VFeGNlcHRp b24sIC8vIHJiX2VFeGNlcHRpb24gaXMgdGhlIGJhc2UgY2xhc3Mgb2YgYWxsIFJ1YnkgZXhjZXB0 aW9ucw0KICAgIDAgLy8gUmVxdWlyZWQgYnkgQVBJIHRvIGJlIHRoZSBsYXN0IGFyZ3VtZW50DQog ICk7DQogIGZwcmludGYoc3RkZXJyLCAiRmluaXNoZWQgb25fbmV3b2JqX2V2ZW50XG4iKTsNCn0N Cg0Kc3RhdGljIFZBTFVFIGluc3RhbGxfdHJhY2Vwb2ludChWQUxVRSB1bnVzZWQpIHsNCiAgVkFM VUUgdHAgPSByYl90cmFjZXBvaW50X25ldyhRbmlsLCBSVUJZX0lOVEVSTkFMX0VWRU5UX05FV09C Siwgb25fbmV3b2JqX2V2ZW50LCBOVUxMIC8qIHVudXNlZCAqLyk7DQogIHJiX3RyYWNlcG9pbnRf ZW5hYmxlKHRwKTsNCiAgZnByaW50ZihzdGRlcnIsICJUcmFjZXBvaW50IGluc3RhbGxlZCFcbiIp Ow0KICByZXR1cm4gUW5pbDsNCn0NCg0Kdm9pZCBJbml0X2V4Y2VwdGlvbl9idWdfcmVwcm8odm9p ZCkgew0KICByYl9kZWZpbmVfc2luZ2xldG9uX21ldGhvZChyYl9kZWZpbmVfbW9kdWxlKCJSZXBy byIpLCAiaW5zdGFsbF90cmFjZXBvaW50IiwgaW5zdGFsbF90cmFjZXBvaW50LCAwKTsNCn0NCmBg YA0KDQpBbmQgbXkgdGVzdCBSdWJ5IHNjcmlwdCBpczoNCg0KYGBgcnVieQ0KcmVxdWlyZV9yZWxh dGl2ZSAnLi9leGNlcHRpb25fYnVnX3JlcHJvJw0KDQpSZXByby5pbnN0YWxsX3RyYWNlcG9pbnQN Cg0Kd2hpbGUgdHJ1ZQ0KICBiZWdpbg0KICAgIHJhaXNlKCdoZWxsbycpDQogIHJlc2N1ZQ0KICAg IHByaW50ICcuJw0KICBlbmQNCmVuZA0KYGBgDQoNCkhlcmUncyBob3cgcnVubmluZyBpdCBsb29r czoNCg0KYGBgDQokIGJ1bmRsZSBleGVjIHJha2UgY2xlYW4gY29tcGlsZQ0KJCBidW5kbGUgZXhl YyBydWJ5IHRlc3RjYXNlLnJiDQpUcmFjZXBvaW50IGluc3RhbGxlZCENCkluc2lkZSBvbl9uZXdv YmpfZXZlbnQNClJhaXNpbmchDQpDYXVnaHQhDQpGaW5pc2hlZCBvbl9uZXdvYmpfZXZlbnQNCklu c2lkZSBvbl9uZXdvYmpfZXZlbnQNClJhaXNpbmchDQpDYXVnaHQhDQpGaW5pc2hlZCBvbl9uZXdv YmpfZXZlbnQNCkluc2lkZSBvbl9uZXdvYmpfZXZlbnQNClJhaXNpbmchDQpDYXVnaHQhDQpGaW5p c2hlZCBvbl9uZXdvYmpfZXZlbnQNCkluc2lkZSBvbl9uZXdvYmpfZXZlbnQNClJhaXNpbmchDQpD YXVnaHQhDQpGaW5pc2hlZCBvbl9uZXdvYmpfZXZlbnQNCkluc2lkZSBvbl9uZXdvYmpfZXZlbnQN ClJhaXNpbmchDQojIDwtLS0gSW5maW5pdGUgbG9vcA0KYGBgDQoNClRoYXQgaXMsIHdlIHNob3Vs ZCBhbHdheXMgc2VlIHRoZSByYWlzZSAtPiBjYXVnaHQsIGJ1dCBzb21ldGltZXMgdGhlIHJhaXNl IGRvZXNuJ3QgZ28gdmVyeSB3ZWxsLCBhbmQgZnJvbSB0aGVuIFJ1YnkgZXZlbnR1YWxseSBsb2Nr cyB1cC4NCg0KSGVyZSdzIHRoZSBmdWxsIGJhY2t0cmFjZSBmcm9tIGdkYjoNCg0KYGBgDQojMCAg cmJfbXVsdGlfcmFjdG9yX3AgKCkgYXQgcnVieS0zXzMvdm1fc3luYy5oOjM5DQojMSAgMHgwMDAw NWZkZGUyNTM0NjY1IGluIHJiX3ZtX2xvY2tfbGVhdmUgKGxldj0weDdmZmMyZjFiNWY3MCwgZmls ZT0weDVmZGRlMjc4M2JiNSAidm1fc3luYy5jIiwgbGluZT0yMzEpIGF0IHJ1YnktM18zL3ZtX3N5 bmMuaDo5Mg0KIzIgIDB4MDAwMDVmZGRlMjUzNGIyOCBpbiByYl9lY192bV9sb2NrX3JlY19yZWxl YXNlIChlYz0weDVmZGRlM2U5YjU3MCwgcmVjb3JkZWRfbG9ja19yZWM9MCwgY3VycmVudF9sb2Nr X3JlYz0xKSBhdCB2bV9zeW5jLmM6MjMxDQojMyAgMHgwMDAwNWZkZGUyMzA4OGYyIGluIHJiX2Vj X3ZtX2xvY2tfcmVjX2NoZWNrIChlYz0weDVmZGRlM2U5YjU3MCwgcmVjb3JkZWRfbG9ja19yZWM9 MCkgYXQgcnVieS0zXzMvZXZhbF9pbnRlcm4uaDoxNDQNCiM0ICAweDAwMDA1ZmRkZTIzMDg5Mzcg aW4gcmJfZWNfdGFnX3N0YXRlIChlYz0weDVmZGRlM2U5YjU3MCkgYXQgcnVieS0zXzMvZXZhbF9p bnRlcm4uaDoxNTUNCiM1ICAweDAwMDA1ZmRkZTIzMGM3MWUgaW4gc2V0dXBfZXhjZXB0aW9uIChl Yz0weDVmZGRlM2U5YjU3MCwgdGFnPTYsIG1lc2c9MTI2MTk2NjgxOTYzMDgwLCBjYXVzZT00KSBh dCBldmFsLmM6NTY0DQojNiAgMHgwMDAwNWZkZGUyMzBjZGM1IGluIHJiX2xvbmdqbXAgKGVjPTB4 NWZkZGUzZTliNTcwLCB0YWc9NiwgbWVzZz0xMjYxOTY2ODE5NjMwODAsIGNhdXNlPTQpIGF0IGV2 YWwuYzo2NjANCiM3ICAweDAwMDA1ZmRkZTIzMGQzOTggaW4gcmJfcmFpc2VfanVtcCAobWVzZz0x MjYxOTY2ODE5NjMwODAsIGNhdXNlPTM2KSBhdCBldmFsLmM6ODUzDQojOCAgMHgwMDAwNWZkZGUy MzBkMGNjIGluIHJiX2ZfcmFpc2UgKGFyZ2M9MSwgYXJndj0weDcyYzY5MDI5NDA0OCkgYXQgZXZh bC5jOjc1Mg0KIzkgIDB4MDAwMDVmZGRlMjMwZDBmNCBpbiBmX3JhaXNlIChjPTEsIHY9MHg3MmM2 OTAyOTQwNDgsIF89MTI2MTk3MTQ3Njg0MzIwKSBhdCBldmFsLmM6Nzg5DQojMTAgMHgwMDAwNWZk ZGUyNTAyZDI0IGluIHJhY3Rvcl9zYWZlX2NhbGxfY2Z1bmNfbTEgKHJlY3Y9MTI2MTk3MTQ3Njg0 MzIwLCBhcmdjPTEsIGFyZ3Y9MHg3MmM2OTAyOTQwNDgsIGZ1bmM9MHg1ZmRkZTIzMGQwY2MgPGZf cmFpc2U+KSBhdCBydWJ5LTNfMy92bV9pbnNuaGVscGVyLmM6MzMxMQ0KIzExIDB4MDAwMDVmZGRl MjUwMzk1YiBpbiB2bV9jYWxsX2NmdW5jX3dpdGhfZnJhbWVfIChlYz0weDVmZGRlM2U5YjU3MCwg cmVnX2NmcD0weDcyYzY5MDM5M2ZhMCwgY2FsbGluZz0weDdmZmMyZjFiNjZhMCwgYXJnYz0xLCBh cmd2PTB4NzJjNjkwMjk0MDQ4LCBzdGFja19ib3R0b209MHg3MmM2OTAyOTQwNDApDQogICAgYXQg cnVieS0zXzMvdm1faW5zbmhlbHBlci5jOjM1MDINCiMxMiAweDAwMDA1ZmRkZTI1MDNiMzAgaW4g dm1fY2FsbF9jZnVuY193aXRoX2ZyYW1lIChlYz0weDVmZGRlM2U5YjU3MCwgcmVnX2NmcD0weDcy YzY5MDM5M2ZhMCwgY2FsbGluZz0weDdmZmMyZjFiNjZhMCkgYXQgcnVieS0zXzMvdm1faW5zbmhl bHBlci5jOjM1MzANCiMxMyAweDAwMDA1ZmRkZTI1MDNjNDggaW4gdm1fY2FsbF9jZnVuY19vdGhl ciAoZWM9MHg1ZmRkZTNlOWI1NzAsIHJlZ19jZnA9MHg3MmM2OTAzOTNmYTAsIGNhbGxpbmc9MHg3 ZmZjMmYxYjY2YTApIGF0IHJ1YnktM18zL3ZtX2luc25oZWxwZXIuYzozNTU2DQojMTQgMHgwMDAw NWZkZGUyNTA0MDcwIGluIHZtX2NhbGxfY2Z1bmMgKGVjPTB4NWZkZGUzZTliNTcwLCByZWdfY2Zw PTB4NzJjNjkwMzkzZmEwLCBjYWxsaW5nPTB4N2ZmYzJmMWI2NmEwKSBhdCBydWJ5LTNfMy92bV9p bnNuaGVscGVyLmM6MzYzOA0KIzE1IDB4MDAwMDVmZGRlMjUwNmI5ZiBpbiB2bV9jYWxsX21ldGhv ZF9lYWNoX3R5cGUgKGVjPTB4NWZkZGUzZTliNTcwLCBjZnA9MHg3MmM2OTAzOTNmYTAsIGNhbGxp bmc9MHg3ZmZjMmYxYjY2YTApIGF0IHJ1YnktM18zL3ZtX2luc25oZWxwZXIuYzo0NDI5DQojMTYg MHgwMDAwNWZkZGUyNTA3NmUwIGluIHZtX2NhbGxfbWV0aG9kIChlYz0weDVmZGRlM2U5YjU3MCwg Y2ZwPTB4NzJjNjkwMzkzZmEwLCBjYWxsaW5nPTB4N2ZmYzJmMWI2NmEwKSBhdCBydWJ5LTNfMy92 bV9pbnNuaGVscGVyLmM6NDU2Ng0KIzE3IDB4MDAwMDVmZGRlMjUwNzg0ZCBpbiB2bV9jYWxsX2dl bmVyYWwgKGVjPTB4NWZkZGUzZTliNTcwLCByZWdfY2ZwPTB4NzJjNjkwMzkzZmEwLCBjYWxsaW5n PTB4N2ZmYzJmMWI2NmEwKSBhdCBydWJ5LTNfMy92bV9pbnNuaGVscGVyLmM6NDU5OQ0KIzE4IDB4 MDAwMDVmZGRlMjUwOWVkMiBpbiB2bV9zZW5kaXNoIChlYz0weDVmZGRlM2U5YjU3MCwgcmVnX2Nm cD0weDcyYzY5MDM5M2ZhMCwgY2Q9MHg1ZmRkZTNmNGY3ZTAsIGJsb2NrX2hhbmRsZXI9MCwgbWV0 aG9kX2V4cGxvcmVyPW1leHBfc2VhcmNoX21ldGhvZCkNCiAgICBhdCBydWJ5LTNfMy92bV9pbnNu aGVscGVyLmM6NTU5Mw0KIzE5IDB4MDAwMDVmZGRlMjUxMTRiOSBpbiB2bV9leGVjX2NvcmUgKGVj PTB4NWZkZGUzZTliNTcwKSBhdCBydWJ5LTNfMy9pbnNucy5kZWY6ODM0DQojMjAgMHgwMDAwNWZk ZGUyNTI4MjliIGluIHJiX3ZtX2V4ZWMgKGVjPTB4NWZkZGUzZTliNTcwKSBhdCB2bS5jOjI0ODYN CiMyMSAweDAwMDA1ZmRkZTI1MjkwZmEgaW4gcmJfaXNlcV9ldmFsX21haW4gKGlzZXE9MHg3MmM2 NzQ2NjdhZDApIGF0IHZtLmM6Mjc1Mg0KIzIyIDB4MDAwMDVmZGRlMjMwYmU1OSBpbiByYl9lY19l eGVjX25vZGUgKGVjPTB4NWZkZGUzZTliNTcwLCBuPTB4NzJjNjc0NjY3YWQwKSBhdCBldmFsLmM6 Mjg3DQojMjMgMHgwMDAwNWZkZGUyMzBiZmQ2IGluIHJ1YnlfcnVuX25vZGUgKG49MHg3MmM2NzQ2 NjdhZDApIGF0IGV2YWwuYzozMjgNCiMyNCAweDAwMDA1ZmRkZTIzMDcyNDUgaW4gcmJfbWFpbiAo YXJnYz0yLCBhcmd2PTB4N2ZmYzJmMWI3NjE4KSBhdCAuL21haW4uYzozOQ0KIzI1IDB4MDAwMDVm ZGRlMjMwNzJiZCBpbiBtYWluIChhcmdjPTIsIGFyZ3Y9MHg3ZmZjMmYxYjc2MTgpIGF0IC4vbWFp bi5jOjU4DQpgYGANCg0KSW4gdGhpcyBtaW5pbWFsIHJlcHJvZHVjZXIsIHVzdWFsbHkgaXQncyB3 aGVuIGFsbG9jYXRpbmcgYSBgVGhyZWFkOjpCYWNrdHJhY2VgIG9iamVjdCB0aGF0IHRyaWdnZXJz IHRoZSBpc3N1ZSwgYnV0IG9uIHRoZSBvcmlnaW5hbCBjb2RlYmFzZSB3aGVyZSBJIHdhcyBleHBl cmltZW50aW5nIEkgc2F3IHRoaXMgaXNzdWUgZXZlbiB3aXRoIG90aGVyIG9iamVjdHMgKEkgdGhp bms/PykuDQoNClRvIGJlIGhvbmVzdCwgbWF5YmUgdGhlIHByb2JsZW0gaXMgb24gdGhlIGV4dGVu c2lvbiBzaWRlIC0tIHRoaXMgY29kZSBhc3N1bWVzIGl0J3Mgb2sgdG8gcmFpc2UvcmVzY3VlIGlu IHRoZSBgUlVCWV9JTlRFUk5BTF9FVkVOVF9ORVdPQkpgIHRyYWNlcG9pbnQgYXMgaXQgdXN1YWxs eSB3b3JrcyBmaW5lLCBidXQgbWF5YmUgaXQncyBub3Q/DQoNCi0tLUZpbGVzLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCmV4Y2VwdGlvbi1idWctcmVwby56aXAgKDMuNzkgS0IpDQoN Cg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCiBydWJ5LWNvcmUgbWFpbGluZyBsaXN0IC0tIHJ1 YnktY29yZUBtbC5ydWJ5LWxhbmcub3JnCiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRv IHJ1YnktY29yZS1sZWF2ZUBtbC5ydWJ5LWxhbmcub3JnCiBydWJ5LWNvcmUgaW5mbyAtLSBodHRw czovL21sLnJ1YnktbGFuZy5vcmcvbWFpbG1hbjMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFu Zy5vcmcv