From: Peter Weldon Date: 2010-09-10T02:52:07+09:00 Subject: [ruby-core:32250] [Ruby 1.9-Bug#3812][Open] (mswin|mingw) ENV[]= fails silently to set huge values --mimepart_4c891e749c3f6_ef38799a7a5850 Content-Type: text/plain Content-Transfer-Encoding: Quoted-printable Content-Disposition: inline Bug #3812: (mswin|mingw) ENV[]=3D fails silently to set huge values http://redmine.ruby-lang.org/issues/show/3812 Author: Peter Weldon Status: Open, Priority: Normal ruby -v: ruby 1.9.3dev (2010-09-08 trunk 29195) [i386-mswin32_100] On mswin&mingw the size of an environment key, value pair is bounded by _= MAX_ENV. Calls to putenv() or _putenv() that exceed this will fail and no= t set the value. Trivial patch that adds test case and error checking to raise Errno::EINV= AL on failure. ---------------------------------------- http://redmine.ruby-lang.org --mimepart_4c891e749c3f6_ef38799a7a5850 Content-Type: application/octet-stream; name=setenv.patch Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=setenv.patch Y29tbWl0IDAzYjliOTliZWFhNTVmMzhiYWMxY2NiMTNjM2IwYzE5YWM0NjEw MTQKQXV0aG9yOiBQZXRlciBXZWxkb24gPHBldGVyLndlbGRvbkBudWxsLm5l dD4KRGF0ZTogICBUdWUgU2VwIDcgMTU6NTE6NTMgMjAxMCAtMDcwMAoKICAg IGhhc2guYyAocnVieV9zZXRlbnYpOiBBZGQgZXJyb3IgY2hlY2tpbmcgZm9y IHdpbjMyCgpkaWZmIC0tZ2l0IGEvaGFzaC5jIGIvaGFzaC5jCmluZGV4IDhi YmE1ODYuLjc3MzAxZTQgMTAwNjQ0Ci0tLSBhL2hhc2guYworKysgYi9oYXNo LmMKQEAgLTIxNDEsMjcgKzIxNDEsMTkgQEAgcnVieV9zZXRlbnYoY29uc3Qg Y2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCiAjaWYgZGVmaW5lZChf V0lOMzIpCiAgICAgaW50IGxlbjsKICAgICBjaGFyICpidWY7Ci0gICAgaWYg KHN0cmNocihuYW1lLCAnPScpKSB7Ci0JZXJybm8gPSBFSU5WQUw7Ci0JcmJf c3lzX2ZhaWwoInJ1Ynlfc2V0ZW52Iik7Ci0gICAgfQotICAgIGlmICh2YWx1 ZSkgewotCWxlbiA9IHN0cmxlbihuYW1lKSArIDEgKyBzdHJsZW4odmFsdWUp ICsgMTsKLQlidWYgPSBBTExPQ0FfTihjaGFyLCBsZW4pOwotCXNucHJpbnRm KGJ1ZiwgbGVuLCAiJXM9JXMiLCBuYW1lLCB2YWx1ZSk7Ci0JcHV0ZW52KGJ1 Zik7Ci0KLQkvKiBwdXRlbnYoKSBkb2Vzbid0IGhhbmRsZSBlbXB0eSB2YWx1 ZSAqLwotCWlmICghKnZhbHVlKQotCSAgICBTZXRFbnZpcm9ubWVudFZhcmlh YmxlKG5hbWUsdmFsdWUpOwotICAgIH0KLSAgICBlbHNlIHsKLQlsZW4gPSBz dHJsZW4obmFtZSkgKyAxICsgMTsKLQlidWYgPSBBTExPQ0FfTihjaGFyLCBs ZW4pOwotCXNucHJpbnRmKGJ1ZiwgbGVuLCAiJXM9IiwgbmFtZSk7Ci0JcHV0 ZW52KGJ1Zik7Ci0JU2V0RW52aXJvbm1lbnRWYXJpYWJsZShuYW1lLCAwKTsK LSAgICB9CisgICAgY29uc3QgY2hhciAqbmV3X3ZhbHVlID0gdmFsdWUgPyB2 YWx1ZSA6ICIiOworICAgIGlmIChzdHJjaHIobmFtZSwgJz0nKSkgZ290byBm YWlsOworICAgIGxlbiA9IHN0cmxlbihuYW1lKSArIDEgKyBzdHJsZW4obmV3 X3ZhbHVlKSArIDE7CisgICAgYnVmID0gQUxMT0NBX04oY2hhciwgbGVuKTsK KyAgICBpZiAoIWJ1ZikgZ290byBmYWlsOworICAgIHNucHJpbnRmKGJ1Ziwg bGVuLCAiJXM9JXMiLCBuYW1lLCBuZXdfdmFsdWUpOworICAgIGlmIChwdXRl bnYoYnVmKSkgZ290byBmYWlsOworICAgIGlmICgoIXZhbHVlIHx8ICEqdmFs dWUpICYmICFTZXRFbnZpcm9ubWVudFZhcmlhYmxlKG5hbWUsdmFsdWUpKSAK KyAgICAgIGdvdG8gZmFpbDsKKyAgICByZXR1cm47CisgZmFpbDoKKyAgICBl cnJubyA9IEVJTlZBTDsKKyAgICByYl9zeXNfZmFpbCgicnVieV9zZXRlbnYi KTsKICNlbGlmIGRlZmluZWQoSEFWRV9TRVRFTlYpICYmIGRlZmluZWQoSEFW RV9VTlNFVEVOVikKICN1bmRlZiBzZXRlbnYKICN1bmRlZiB1bnNldGVudgpk aWZmIC0tZ2l0IGEvdGVzdC9ydWJ5L3Rlc3RfZW52LnJiIGIvdGVzdC9ydWJ5 L3Rlc3RfZW52LnJiCmluZGV4IDc4NWI2YmIuLjUyYjk1ZTMgMTAwNjQ0Ci0t LSBhL3Rlc3QvcnVieS90ZXN0X2Vudi5yYgorKysgYi90ZXN0L3J1YnkvdGVz dF9lbnYucmIKQEAgLTEsNCArMSw1IEBACiByZXF1aXJlICd0ZXN0L3VuaXQn CityZXF1aXJlICdyYmNvbmZpZycKIAogY2xhc3MgVGVzdEVudiA8IFRlc3Q6 OlVuaXQ6OlRlc3RDYXNlCiAgIElHTk9SRV9DQVNFID0gL2JjY3dpbnxtc3dp bnxtaW5ndy8gPX4gUlVCWV9QTEFURk9STQpAQCAtMzc0LDQgKzM3NSwxNiBA QCBjbGFzcyBUZXN0RW52IDwgVGVzdDo6VW5pdDo6VGVzdENhc2UKICAgICBF TlYudXBkYXRlKHsiYmF6Ij0+InF1dXgiLCJhIj0+ImIifSkge3xrLCB2MSwg djJ8IHYxID8gayArICJfIiArIHYxICsgIl8iICsgdjIgOiB2MiB9CiAgICAg Y2hlY2soRU5WLnRvX2hhc2gudG9fYSwgWyV3KGZvbyBiYXIpLCAldyhiYXog YmF6X3F1eF9xdXV4KSwgJXcoYSBiKV0pCiAgIGVuZAorCisgIGRlZiB0ZXN0 X2h1Z2VfdmFsdWUKKyAgICBodWdlX3ZhbHVlID0gImJhciIgKiA0MDk2MAor ICAgIEVOVlsiZm9vIl0gPSAiYmFyIgorICAgIGlmIENvbmZpZzo6Q09ORklH Wydob3N0X29zJ10gPX4gL21zd2lufG1pbmd3LworICAgICAgYXNzZXJ0X3Jh aXNlKEVycm5vOjpFSU5WQUwpIHsgRU5WWyJmb28iXSA9IGh1Z2VfdmFsdWUg fQorICAgICAgYXNzZXJ0X2VxdWFsKCJiYXIiLCBFTlZbImZvbyJdKQorICAg IGVsc2UKKyAgICAgIGFzc2VydF9ub3RoaW5nX3JhaXNlZCB7IEVOVlsiZm9v Il0gPSBodWdlX3ZhbHVlIH0KKyAgICAgIGFzc2VydF9lcXVhbChodWdlX3Zh bHVlLCBFTlZbImZvbyJdKQorICAgIGVuZAorICBlbmQKIGVuZAo= --mimepart_4c891e749c3f6_ef38799a7a5850--