[ruby-core:118956] [Ruby master Bug#20690] URI.encode_www_form_component method escapes tilde when it's not supposed to
From:
"y4m4p (Masahiro Yamashita) via ruby-core" <ruby-core@...>
Date:
2024-08-26 02:37:09 UTC
List:
ruby-core #118956
SXNzdWUgIzIwNjkwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgeTRtNHAgKE1hc2FoaXJvIFlhbWFzaGl0 YSkuDQoNCg0KSSBsYWJlbGVkIGl0IGFzIGEgYnVnLCBidXQgbWF5YmUgaXQncyBtb3JlIG9mIGEg ZmVhdHVyZSByZXF1ZXN0Li4/IHNvcnJ5IGlmIEknbSBnZXR0aW5nIGl0IHdyb25nLg0KDQpJIGhh dmUgYWxzbyBjcmVhdGVkIGEgUFIgb24gdGhlIHVyaSByZXBvIHRvIGFkZHJlc3MgdGhpcyBwYXJ0 aWN1bGFyIGNhc2UuDQpQUjogaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvdXJpL3B1bGwvMTE3DQoN ClRoaXMgY2hhbmdlIG1pZ2h0IGFmZmVjdCBzb21lIFJ1YnkgdXNlcnMgd2hvIHJlbHkgb24gdGls ZGUgYmVpbmcgZXNjYXBlZCBmb3Igd2hhdGV2ZXIgcmVhc29uLCBzbyBJJ20gbm90IHN1cmUgaWYg dGhpcyBzaG91bGQgYmUgaW5jbHVkZWQgaW4gYSBwYXRjaCwgc28gSSdkIHdhbnQgdG8gaGVhciB0 aGUgbWFpbmFpbmVyJ3MgdGhvdWdodHMgb24gdGhpcy4NClRoYW5rIHlvdS4NCg0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQnVnICMyMDY5MDogVVJJLmVuY29kZV93 d3dfZm9ybV9jb21wb25lbnQgbWV0aG9kIGVzY2FwZXMgdGlsZGUgd2hlbiBpdCdzIG5vdCBzdXBw b3NlZCB0bw0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIwNjkwI2NoYW5nZS0x MDk1MjkNCg0KKiBBdXRob3I6IHk0bTRwIChNYXNhaGlybyBZYW1hc2hpdGEpDQoqIFN0YXR1czog T3Blbg0KKiBydWJ5IC12OiBydWJ5IDMuMi4yICgyMDIzLTAzLTMwIHJldmlzaW9uIGU1MTAxNGY5 YzApIFthcm02NC1kYXJ3aW4yMV0NCiogQmFja3BvcnQ6IDMuMTogVU5LTk9XTiwgMy4yOiBVTktO T1dOLCAzLjM6IFVOS05PV04NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCiMjIFByb2JsZW0NCkFzIHRoZSB0aXRsZSBzYXlzLCAgYFVyaS5lbmNvZGVfd3d3X2Zvcm1f Y29tcG9uZW50YCBpcyBlc2NhcGluZyB0aWxkZSAoYH5gKSB3aGVyZSBpdCBzaG91bGQgbm90IGFj Y29yZGluZyB0byB0aGUgUkZDMzk4Ni4NClJlZjogaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9y Zy9kb2MvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMi4zDQoNClRoZXJlIHdhcyBhIHByZXZpb3VzIGlz c3VlIHdpdGggdGhlIHNhbWUgcHJvYmxlbSwgaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNz dWVzLzY2OTYgd2hpY2ggaGFzIGJlZW4gcmVzb2x2ZWQgYW5kIG1lcmdlZC4NCg0KLS0tDQoNClNp bmNlIGBVUkkuZXNjYXBlYCBpcyBub3cgb2Jzb2xldGUgYW5kIGdvbmUsIHRoZSBwcmVmZXJyZWQg d2F5IHRvIGVzY2FwZSBVUkkgY2hhcmFjdGVycyBhcmUgdG8gY2hvb3NlIGZyb20gdGhlIGZvbGxv d2luZyBtZXRob2RzLg0KLSBgVVJJLmVuY29kZV93d3dfZm9ybV9jb21wb25lbnRgIChvciwgYFVS SS5lbmNvZGVfd3d3X2Zvcm1gIHdoaWNoIHVzZXMgdGhpcykNCi0gYENHSS5lc2NhcGVgDQotIGBF UkI6OlV0aWwuI3VybF9lbmNvZGVgDQotIGBXRUJyaWNrOjpIVFRQVXRpbHMuI2VzY2FwZV9mb3Jt YA0KLSBgV0VCcmljazo6SFRUUFV0aWxzLiNlc2NhcGVgDQoNClRoaXMgaXNzdWUgZG9lcyBub3Qg b2NjdXIgd2hlbiB1c2luZyBhbnkgb2YgdGhlIG1ldGhvZHMgZXhjZXB0IGBVUkkuZW5jb2RlX3d3 d19mb3JtX2NvbXBvbmVudGAuDQpUaGVzZSBwcmVmZXJyZWQgb3B0aW9ucyBhcmUgbm90IGNvbXBh dGlibGUgd2l0aCBlYWNoIG90aGVyLCBtYWtpbmcgaXQgYSBwb29yIGV4cGVyaWVuY2UgZm9yIFJ1 YnkgdXNlcnMuDQoNCiMjIyBNaW5pbXVtIHJlcGxpY2F0aW9uDQpgYGAgcnVieQ0KIyBVUkkNCmly YihtYWluKTowMDI6MD4gcmVxdWlyZSAndXJpJw0KPT4gdHJ1ZQ0KaXJiKG1haW4pOjAwNDowPiBV UkkuZW5jb2RlX3d3d19mb3JtX2NvbXBvbmVudCgicnVieX50ZXN0IikNCj0+ICJydWJ5JTdFdGVz dCINCg0KIyBDR0kNCmlyYihtYWluKTowMDE6MD4gcmVxdWlyZSAnY2dpJw0KPT4gdHJ1ZQ0KaXJi KG1haW4pOjAwMzowPiBDR0kuZXNjYXBlKCJydWJ5fnRlc3QiKQ0KPT4gInJ1Ynl+dGVzdCINCg0K IyBFUkINCmlyYihtYWluKTowMDk6MD4gcmVxdWlyZSAnZXJiJw0KPT4gdHJ1ZQ0KaXJiKG1haW4p OjAxMjowPiBFUkI6OlV0aWwudXJsX2VuY29kZSgicnVieX50ZXN0IikNCj0+ICJydWJ5fnRlc3Qi DQoNCiMgV2Vicmljaw0KIyBuZWVkcyB3ZWJyaWNrIGdlbSBpbnN0YWxsZWQNClszXSBwcnkobWFp bik+IHJlcXVpcmUgJ3dlYnJpY2snDQo9PiB0cnVlDQpbNF0gcHJ5KG1haW4pPiBXRUJyaWNrOjpI VFRQVXRpbHMuZXNjYXBlX2Zvcm0oInJ1Ynl+dGVzdCIpDQo9PiAicnVieX50ZXN0Ig0KWzVdIHBy eShtYWluKT4gV0VCcmljazo6SFRUUFV0aWxzLmVzY2FwZSgicnVieX50ZXN0IikNCj0+ICJydWJ5 fnRlc3QiDQpgYGANCg0KIyMgUmVhbCB3b3JsZCB1c2UtY2FzZSBwcm9ibGVtDQpJIGhhdmUgYSB1 c2UtY2FzZSBwcm9ibGVtIHdpdGggdXNpbmcgVVJJIHdoZW4gaW1wbGVtZW50aW5nIGEgT0lEQyB3 aXRoIFBLQ0UgY2xpZW50IC8gc2VydmVyIHNldHVwLg0KV2hlbiB0cnlpbmcgdG8gZ2VuZXJhdGUg YSBHRVQgVVJJIGZvciBPcGVuIElEIENvbm5lY3Qgd2l0aCBQS0NFLCB5b3UgbmVlZCB0byBwcm92 aWRlIGEgYGNvZGVfdmVyaWZpZXJgIHZhbHVlIHRvIHRoZSBBdXRob3JpemF0aW9uIHNlcnZlciwg d2hpY2ggYWN0dWFsbHkgcmVxdWlyZXMgeW91IHRvIHVzZSB0aGUgdGlsZGUgd2l0aG91dCBlc2Nh cGluZy4NCg0KUmVmOiBodHRwczovL3d3dy5vYXV0aC5jb20vb2F1dGgyLXNlcnZlcnMvcGtjZS9h dXRob3JpemF0aW9uLXJlcXVlc3QvDQo+IFdoZW4gdGhlIG5hdGl2ZSBhcHAgYmVnaW5zIHRoZSBh dXRob3JpemF0aW9uIHJlcXVlc3QsIGluc3RlYWQgb2YgaW1tZWRpYXRlbHkgbGF1bmNoaW5nIGEg YnJvd3NlciwgdGhlIGNsaWVudCBmaXJzdCBjcmVhdGVzIHdoYXQgaXMga25vd24gYXMgYSDigJxj b2RlIHZlcmlmaWVy4oCcLiBUaGlzIGlzIGEgY3J5cHRvZ3JhcGhpY2FsbHkgcmFuZG9tIHN0cmlu ZyB1c2luZyB0aGUgY2hhcmFjdGVycyBBLVosIGEteiwgMC05LCBhbmQgdGhlIHB1bmN0dWF0aW9u IGNoYXJhY3RlcnMgLS5ffiAoaHlwaGVuLCBwZXJpb2QsIHVuZGVyc2NvcmUsIGFuZCB0aWxkZSks IGJldHdlZW4gNDMgYW5kIDEyOCBjaGFyYWN0ZXJzIGxvbmcuDQoNClRoZSBpbmNvbnNpc3RlbnQg ZW5jb2RpbmcgaXMgcHJvYmxlbWF0aWMgZm9yIHRoZSBTZXJ2ZXIgYW5kIENsaWVudCBib3RoLCBz aW5jZSBib3RoIGVuZHMgbmVlZHMgdG8gaGF2ZSBhbiBhZ3JlZW1lbnQgb24gdXNpbmcgdGlsZGUg YXMgYW4gZXNjYXBlZCBjaGFyYWN0ZXIgb3IgYW4gdW5lc2NhcGVkIGNoYXJhY3Rlci4gDQpMb2dp Y2FsbHkgc3BlYWtpbmcsIGB+YCBzaG91bGQgYmUgc2VudCBBUy1JUyBhbmQgbm90IHRvIGJlIGVz Y2FwZWQsIHNpbmNlIHRoZSBgY29kZV9jaGFsbGVuZ2VgIHZhbHVlIGFuZCBgY29kZV92ZXJpZmll cmAgdmFsdWVzIGFyZSBzdHJpY3RseSBjaGVja2VkIHVzaW5nIGEgSGFzaCBnZW5lcmF0aW9uIGZ1 bmN0aW9uIGBEaWdlc3Q6OlNIQTI1Ni5kaWdlc3RgLCB3aGljaCBnZW5lcmF0ZXMgYSBkaWZmZXJl bnQgSGFzaCB2YWx1ZSBkZXBlbmRpbmcgb24gYH5gKG5vbiBlc2NhcGVkKSBvciBgJTdFYChlc2Nh cGVkKS4NClRoZXNlIHBhcmFtZXRlcnMgZnJvbSB1c2VyIGlucHV0cyBhcmUgdXN1YWxseSBub3Qg bWVhbnQgdG8gYmUgdGFtcGVyZWQgd2l0aCBmb3Igc2VjdXJpdHkgc2FrZSwgc28gaXQncyBiZXN0 IHRvIGhhdmUgdGlsZGUgYH5gIHRvIGJlIHVuZXNjYXBlZCBmcm9tIHRoZSBiZWdpbm5pbmcuDQoN CiMjIFJlbGF0ZWQgaXNzdWVzDQotIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy82 Njk2DQogIC0gVGhpcyBzZWVtcyB0byBoYXZlIGJlZW4gcmVzb2x2ZWQgYW5kIG1lcmdlZC4NCg0K DQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBy dWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0 byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0 cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxh bmcub3JnLw==