[ruby-core:118782] [Ruby master Bug#20663] Reading from IO does not recover gracefully from bad data pushed via IO#ungetc
From:
"javanthropus (Jeremy Bopp) via ruby-core" <ruby-core@...>
Date:
2024-08-03 05:30:46 UTC
List:
ruby-core #118782
SXNzdWUgIzIwNjYzIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGphdmFudGhyb3B1cyAoSmVyZW15IEJv cHApLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpCdWcgIzIw NjYzOiBSZWFkaW5nIGZyb20gSU8gZG9lcyBub3QgcmVjb3ZlciBncmFjZWZ1bGx5IGZyb20gYmFk IGRhdGEgcHVzaGVkIHZpYSBJTyN1bmdldGMNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lz c3Vlcy8yMDY2Mw0KDQoqIEF1dGhvcjogamF2YW50aHJvcHVzIChKZXJlbXkgQm9wcCkNCiogU3Rh dHVzOiBPcGVuDQoqIEJhY2twb3J0OiAzLjE6IFVOS05PV04sIDMuMjogVU5LTk9XTiwgMy4zOiBV TktOT1dODQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpJZiBieXRl cyB0aGF0IHJlc3VsdCBpbiBhdCBsZWFzdCAyIGludmFsaWQgY2hhcmFjdGVycyBmb3IgdGhlIGlu dGVybmFsIGVuY29kaW5nIG9mIGFuIElPIG9iamVjdCBhcmUgcHVzaGVkIGludG8gdGhlIGludGVy bmFsIGJ1ZmZlciB3aXRoIElPI2dldGMsIHJlYWRpbmcgZnJvbSB0aGUgc3RyZWFtIHJldHVybnMg aW52YWxpZCBjaGFyYWN0ZXJzIGNvbXBvc2VkIG9mIGJvdGggYnl0ZXMgZnJvbSB0aGUgaW50ZXJu YWwgYnVmZmVyIGFuZCB0aGUgY29udmVydGVkIGJ5dGVzIGZyb20gdGhlIHN0cmVhbSBldmVuIGlm IHRoZSBuZXh0IGNoYXJhY3RlciBpbiB0aGUgc3RyZWFtIGl0c2VsZiBpcyBjb21wbGV0ZWx5IHZh bGlkLg0KDQpgYGAgcnVieQ0KY2hhcl9ieXRlcyA9IFRlbXBmaWxlLm9wZW4oZW5jb2Rpbmc6ICd1 dGYtODp1dGYtMTZsZScpIGRvIHxmfA0KICBmLndyaXRlKCLwn42jIikNCiAgZi5yZXdpbmQNCiAg Zi51bmdldGMoIvCfjaMiLmVuY29kZSgndXRmLTE2bGUnKS5iWzAuLi0yXSkNCiAgZi5lYWNoX2No YXIubWFwKCY6Ynl0ZXMpDQplbmQNCnB1dHMgY2hhcl9ieXRlcy5pbnNwZWN0DQpgYGANCg0KVGhl IGFib3ZlIG91dHB1dHM6DQoNCmBgYA0KW1s2MCwgMjE2XSwgWzk5LCA2MF0sIFsyMTYsIDk5XSwg WzIyM11dDQpgYGANCg0KSSBleHBlY3QgaXQgdG8gb3V0cHV0Og0KDQpgYGANCltbNjAsIDIxNl0s IFs5OV0sIFs2MCwgMjE2LCA5OSwgMjIzXV0NCmBgYA0KDQpJbiBvdGhlciB3b3JkcywgSSBleHBl Y3QgaXQgdG8gZmlyc3QgY29tcGxldGVseSBkcmFpbiB0aGUgaW50ZXJuYWwgY2hhcmFjdGVyIGJ1 ZmZlciByZXR1cm5pbmcgYXMgbWFueSBjaGFyYWN0ZXJzIGFzIG5lY2Vzc2FyeSAoaW52YWxpZCBv ciBvdGhlcndpc2UpIGJlZm9yZSByZWFkaW5nIGZyb20gdGhlIHN0cmVhbSBhbmQgY29udmVydGlu ZyBhbmQgcmV0dXJuaW5nIHRoZSBuZXh0IGNoYXJhY3Rlci4gIEludGVyZXN0aW5nbHksIGlmIHRo ZXJlIGFyZSBvbmx5IGJ5dGVzIHN1ZmZpY2llbnQgZm9yIDEgaW52YWxpZCBjaGFyYWN0ZXIgaW4g dGhlIGludGVybmFsIGJ1ZmZlciwgaXQgYmVoYXZlcyB0aGF0IHdheToNCg0KYGBgIHJ1YnkNCmNo YXJfYnl0ZXMgPSBUZW1wZmlsZS5vcGVuKGVuY29kaW5nOiAndXRmLTg6dXRmLTE2bGUnKSBkbyB8 ZnwNCiAgZi53cml0ZSgi8J+NoyIpDQogIGYucmV3aW5kDQogIGYudW5nZXRjKCLwn42jIi5lbmNv ZGUoJ3V0Zi0xNmxlJykuYlswLi4tM10pICAgIyA8LSBOb3RlIHRoZSAtMyBoZXJlIHZzLiB0aGUg LTIgZWFybGllcg0KICBmLmVhY2hfY2hhci5tYXAoJjpieXRlcykNCmVuZA0KcHV0cyBjaGFyX2J5 dGVzLmluc3BlY3QNCmBgYA0KDQpUaGlzIG91dHB1dHM6DQoNCmBgYA0KW1s2MCwgMjE2XSwgWzYw LCAyMTYsIDk5LCAyMjNdXQ0KYGBgDQoNClRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgaW52YWxpZCwg YnV0IHJldHVybmluZyBpdCBmaXJzdCBjbGVhcnMgdGhlIGJ1ZmZlci4gIFRoZW4gdGhlIG5leHQg Y2hhcmFjdGVyIGlzIHJlYWQsIGNvbnZlcnRlZCwgYW5kIHJldHVybmVkIGluIGZ1bGwuDQoNCg0K DQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBy dWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0 byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0 cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxh bmcub3JnLw==