[#118346] [Ruby master Bug#20586] Some filesystem calls in dir.c are missing error handling and can return incorrect results if interrupted — "ivoanjo (Ivo Anjo) via ruby-core" <ruby-core@...>
Issue #20586 has been reported by ivoanjo (Ivo Anjo).
13 messages
2024/06/19
[ruby-core:118388] [Ruby master Feature#20594] A new String method to append bytes while preserving encoding
From:
"byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date:
2024-06-25 06:39:42 UTC
List:
ruby-core #118388
SXNzdWUgIzIwNTk0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGJ5cm9vdCAoSmVhbiBCb3Vzc2llciku DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzIw NTk0OiBBIG5ldyBTdHJpbmcgbWV0aG9kIHRvIGFwcGVuZCBieXRlcyB3aGlsZSBwcmVzZXJ2aW5n IGVuY29kaW5nDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMjA1OTQNCg0KKiBB dXRob3I6IGJ5cm9vdCAoSmVhbiBCb3Vzc2llcikNCiogU3RhdHVzOiBPcGVuDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIyMgQ29udGV4dA0KDQpXaGVuIHdvcmtp bmcgd2l0aCBiaW5hcnkgcHJvdG9jb2xzIHN1Y2ggYXMgYHByb3RvYnVmYCBvciBgTWVzc2FnZVBh Y2tgLCB5b3UgbWF5IG9mdGVuIG5lZWQgdG8gYXNzZW1ibGUgbXVsdGlwbGUNCnN0cmluZ3Mgb2Yg ZGlmZmVyZW50IGVuY29kaW5nOg0KDQpgYGBydWJ5DQpQb3N0ID0gU3RydWN0Lm5ldyg6dGl0bGUs IDpib2R5KSBkbw0KICBkZWYgc2VyaWFsaXplKGJ1ZikNCiAgICBidWYgPDwNCiAgICAgIDI1NSA8 PCB0aXRsZS5ieXRlc2l6ZSA8PCB0aXRsZSA8PA0KICAgICAgMjU1IDw8IGJvZHkuYnl0ZXNpemUg PDwgYm9keQ0KICBlbmQNCmVuZA0KDQpQb3N0Lm5ldygiSGVsbG8iLCAiV29ybGQiKS5zZXJpYWxp emUoInNvbWVkYXRhIi5iKSAjID0+ICJzb21lZGF0YVx4RkZceDA1SGVsbG9ceEZGXHgwNVdvcmxk IiAjPEVuY29kaW5nOkFTQ0lJLThCSVQ+DQpgYGANCg0KVGhlIHByb2JsZW0gaW4gdGhlIGFib3Zl IGNhc2UsIGlzIHRoYXQgYmVjYXVzZSBgRW5jb2Rpbmc6OkFTQ0lJXzhCSVRgIGlzIGRlY2xhcmVk IGFzIEFTQ0lJIGNvbXBhdGlibGUsDQppZiBvbmUgb2YgdGhlIGFwcGVuZGVkIHN0cmluZyBjb250 YWlucyBieXRlcyBvdXRzaWRlIHRoZSBBU0NJSSByYW5nZSwgc3RyaW5nIGlzIGF1dG9tYXRpY2Fs bHkgcHJvbW90ZWQNCnRvIGFub3RoZXIgZW5jb2RpbmcsIHdoaWNoIHRoZW4gbGVhZHMgdG8gZW5j b2RpbmcgaXNzdWVzOg0KDQpgYGBydWJ5DQpQb3N0Lm5ldygiSOKCrGxsbyIsICJXw7RybGQiKS5z ZXJpYWxpemUoInNvbWVkYXRhIi5iKSAjID0+IGluY29tcGF0aWJsZSBjaGFyYWN0ZXIgZW5jb2Rp bmdzOiBBU0NJSS04QklUIGFuZCBVVEYtOCAoRW5jb2Rpbmc6OkNvbXBhdGliaWxpdHlFcnJvcikN CmBgYA0KDQpJbiBtYW55IGNhc2VzLCB5b3Ugd2FudCB0byBhcHBlbmQgdG8gYSBTdHJpbmcgd2l0 aG91dCBjaGFuZ2luZyB0aGUgcmVjZWl2ZXIncyBlbmNvZGluZy4NCg0KVGhlIGlzc3VlIGlzbid0 IGV4Y2x1c2l2ZSB0byBiaW5hcnkgcHJvdG9jb2xzIGFuZCBmb3JtYXRzLCBpdCBhbHNvIGhhcHBl biB3aXRoIEFTQ0lJIHByb3RvY29scyB0aGF0IGFjY2VwdCBhcmJpdHJhcnkgYnl0ZXMgaW5saW5l LA0KbGlrZSBSZWRpcydzIFJFU1AgcHJvdG9jb2wgb3IgZXZlbiBIVFRQLzEuMS4NCg0KIyMjIFBy ZXZpb3VzIGRpc2N1c3Npb24NCg0KVGhlcmUgd2FzIGEgc2ltaWxhciBmZWF0dXJlIHJlcXVlc3Qg YSB3aGlsZSBhZ28sIGJ1dCBpdCB3YXMgYWJhbmRvbmVkOiBodHRwczovL2J1Z3MucnVieS1sYW5n Lm9yZy9pc3N1ZXMvMTQ5NzUNCg0KIyMjIEV4aXN0aW5nIHNvbHV0aW9ucw0KDQpZb3UgY2FuIG9m IGNvdXJzZSBhbHdheXMgY2FzdCB0aGUgc3RyaW5ncyB5b3UgYXBwZW5kIHRvIGF2b2lkIHRoaXMg cHJvYmxlbToNCg0KYGBgcnVieQ0KUG9zdCA9IFN0cnVjdC5uZXcoOnRpdGxlLCA6Ym9keSkgZG8N CiAgZGVmIHNlcmlhbGl6ZShidWYpDQogICAgYnVmIDw8DQogICAgICAyNTUgPDwgdGl0bGUuYnl0 ZXNpemUgPDwgdGl0bGUuYiA8PA0KICAgICAgMjU1IDw8IGJvZHkuYnl0ZXNpemUgPDwgYm9keS5i DQogIGVuZA0KZW5kDQpgYGANCg0KQnV0IHRoaXMgY2F1c2UgYSBsb3Qgb2YgbmVlZGxlc3MgYWxs b2NhdGlvbnMuDQoNCllvdSdkIHRoaW5rIHlvdSBjb3VsZCBhbHNvIHVzZSBgYnl0ZXNwbGljZWAs IGJ1dCBpdCBhY3R1YWxseSBoYXMgdGhlIHNhbWUgaXNzdWU6DQoNCmBgYHJ1YnkNClBvc3QgPSBT dHJ1Y3QubmV3KDp0aXRsZSwgOmJvZHkpIGRvDQogIGRlZiBzZXJpYWxpemUoYnVmKQ0KICAgIGJ1 ZiA8PCAyNTUgPDwgdGl0bGUuYnl0ZXNpemUNCiAgICBidWYuYnl0ZXNwbGljZShidWYuYnl0ZXNp emUsIHRpdGxlLmJ5dGVzaXplLCB0aXRsZSkNCiAgICBidWYgPDwgMjU1IDw8IGJvZHkuYnl0ZXNp emUNCiAgICBidWYuYnl0ZXNwbGljZShidWYuYnl0ZXNpemUsIGJvZHkuYnl0ZXNpemUsIHRpdGxl KQ0KICBlbmQNCmVuZA0KUG9zdC5uZXcoIkjigqxsbG8iLCAiV8O0cmxkIikuc2VyaWFsaXplKCJz b21lZGF0YSIuYikgIyA9PiAnU3RyaW5nI2J5dGVzcGxpY2UnOiBpbmNvbXBhdGlibGUgY2hhcmFj dGVyIGVuY29kaW5nczogQklOQVJZIChBU0NJSS04QklUKSBhbmQgVVRGLTggKEVuY29kaW5nOjpD b21wYXRpYmlsaXR5RXJyb3IpDQpgYGANCg0KQW5kIGV2ZW4gaWYgaXQgd29ya2VkLCBpdCB3b3Vs ZCBiZSB2ZXJ5IHVuZXJnb25vbWljLg0KDQojIyMgUHJvcG9zYWw6IGEgYGJ5dGVjb25jYXRgIG1l dGhvZA0KDQpBIHNvbHV0aW9uIHRvIHRoaXMgd291bGQgYmUgdG8gYWRkIGEgbmV3IGBieXRlY29u Y2F0YCBtZXRob2QsIHRoYXQgY291bGQgYmUgc2hpbWVkIGFzOg0KDQpgYGBydWJ5DQpjbGFzcyBT dHJpbmcNCiAgZGVmIGJ5dGVjb25jYXQoKnN0cmluZ3MpDQogICAgc3RyaW5ncy5tYXAhIGRvIHxz fA0KICAgICAgaWYgcy5pc19hPyhTdHJpbmcpICYmIHMuZW5jb2RpbmcgIT0gZW5jb2RpbmcNCiAg ICAgICAgcy5kdXAuZm9yY2VfZW5jb2RpbmcoZW5jb2RpbmcpDQogICAgICBlbHNlDQogICAgICAg IHMNCiAgICAgIGVuZA0KICAgIGVuZA0KICAgIGNvbmNhdCgqc3RyaW5ncykNCiAgZW5kDQplbmQN Cg0KUG9zdCA9IFN0cnVjdC5uZXcoOnRpdGxlLCA6Ym9keSkgZG8NCiAgZGVmIHNlcmlhbGl6ZShi dWYpDQogICAgYnVmLmJ5dGVjb25jYXQoDQogICAgICAyNTUsIHRpdGxlLmJ5dGVzaXplLCB0aXRs ZSwNCiAgICAgIDI1NSwgYm9keS5ieXRlc2l6ZSwgYm9keSwNCiAgICApDQogIGVuZA0KZW5kDQoN ClBvc3QubmV3KCJI4oKsbGxvIiwgIlfDtHJsZCIpLnNlcmlhbGl6ZSgic29tZWRhdGEiLmIpICMg PT4gInNvbWVkYXRhXHhGRlxhSFx4RTJceDgyXHhBQ2xsb1x4RkZceDA2V1x4QzNceEI0cmxkIiAj PEVuY29kaW5nOkFTQ0lJLThCSVQ+DQpgYGANCg0KQnV0IG9mIGNvdXJzZSBhIGJ1aWx0aW4gaW1w bGVtZW50YXRpb24gd291bGRuJ3QgbmVlZCB0byBkdXAgdGhlIGFyZ3VtZW50cy4NCg0KTGlrZSBv dGhlciBgYnl0ZSpgIG1ldGhvZHMsIGl0J3MgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxs ZXIgdG8gZW5zdXJlIHRoZSByZXN1bHRpbmcgc3RyaW5nIGhhcyBhIHZhbGlkIGVuY29kaW5nLCBv cg0KdG8gZGVhbCB3aXRoIGl0IGlmIG5vdC4NCg0KIyMjIE1ldGhvZCBuYW1lIGFuZCBzaWduYXR1 cmUNCg0KIyMjIyBOYW1lDQoNClRoaXMgcHJvcG9zYWwgc3VnZ2VzdHMgYFN0cmluZyNieXRlY29u Y2F0YCwgdG8gbWlycm9yIGBTdHJpbmcjY29uY2F0YCwgYnV0IG90aGVyIG5hbWVzIGFyZSBwb3Nz aWJsZToNCg0KICAtIGBieXRlYXBwZW5kYCAobGlrZSBgQXJyYXkjYXBwZW5kYCkNCiAgLSBgYnl0 ZXB1c2hgICAobGlrZSBgQXJyYXkjcHVzaGApDQoNCiMjIyMgU2lnbmF0dXJlDQoNClRoaXMgcHJv cG9zYWwgbWFrZXMgYGJ5dGVjb25jYXRgIGFjY2VwdCBlaXRoZXIgYFN0cmluZ2Agb3IgYEludGVn ZXJgIChpbiBjaGFyIHJhbmdlKSBhcmd1bWVudHMgbGlrZSBgY29uY2F0YC4gSSBiZWxpZXZlIGl0 IG1ha2VzIHNlbnNlIGZvciBjb25zaXN0ZW5jeSBhbmQgYWxzbyBiZWNhdXNlIGl0J3Mgbm90IHVu Y29tbW9uIGZvciBwcm90b2NvbHMgdG8gaGF2ZSBzb21lIGJ5dGUgYmFzZWQgc2VnbWVudHMsIGFu ZCBJbnRlZ2VycyBhcmUgbW9yZSBjb252ZW5pZW50IHRoZXJlLg0KDQpUaGUgcHJvcG9zZWQgbWV0 aG9kIGFsc28gYWNjZXB0IHZhcmlhYmxlIGFyZ3VtZW50cyBmb3IgY29uc2lzdGVuY3kgd2l0aCBg U3RyaW5nI2NvbmNhdGAsIGBBcnJheSNwdXNoYCwgYEFycmF5I2FwcGVuZGAuDQoNClRoZSBwcm9w b3NlZCBtZXRob2QgcmV0dXJucyBzZWxmLCBsaWtlIGBjb25jYXRgIGFuZCBvdGhlcnMuDQoNCiMj IyBZSklUIGNvbnNpZGVyYXRpb24NCg0KSSBjb25zdWx0ZWQgQG1heGltZWNiIGFib3V0IHRoaXMg cHJvcG9zYWwsIGFuZCBhY2NvcmRpbmcgdG8gaGVyLCBhY2NlcHRpbmcgdmFyaWFibGUgYXJndW1l bnRzIG1ha2VzIGl0IGhhcmRlciBmb3IgWUpJVCB0byBvcHRpbWl6ZS4NCkkgc3VzcGVjdCBjb25z aXN0ZW5jeSB3aXRoIG90aGVyIEFQSXMgdHJ1bXBzIHRoZSBwZXJmb3JtYW5jZSBjb25zaWRlcmF0 aW9uLCBidXQgSSB0aGluayBpdCdzIHdvcnRoIG1lbnRpb25pbmcuDQoNCg0KDQoNCg0KLS0gDQpo dHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCiBydWJ5LWNvcmUgbWFpbGluZyBsaXN0IC0tIHJ1YnktY29yZUBt bC5ydWJ5LWxhbmcub3JnCiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIHJ1YnktY29y ZS1sZWF2ZUBtbC5ydWJ5LWxhbmcub3JnCiBydWJ5LWNvcmUgaW5mbyAtLSBodHRwczovL21sLnJ1 YnktbGFuZy5vcmcvbWFpbG1hbjMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv