ออราเคิลออกประกาศ Security Alert for CVE-2010-4476 พร้อมโปรแกรมแก้ไขบัก
ซึ่งเป็นบักในส่วนการแปลงข้อความตัวอักษรเลขฐาน 10 ไปเป็นเลขฐาน 2 จำนวนจริงแบบความละเอียดสองเท่า (double-precision binary floating-point) ที่เมื่อเจอเลข 2.2250738585072012e-308 จะวนติดอยู่ในลูปและไม่สามารถทำงานคำสั่งถัดไปได้
บักนี้ร้ายขนาดไหน? ยกตัวอย่างง่ายๆ ก็ทำให้โปรแกรมอย่าง "javac" ค้างได้ รายละเอียดลองอ่าน "Java Hangs When Converting 2.2250738585072012e-308" ดู
on
ผมคิดว่าถ้ามีตัวอย่างโค๊ดที่เ
mr_tawan Wed, 09/02/2011 - 15:42
ผมคิดว่าถ้ามีตัวอย่างโค๊ดที่เคยเป็นปัญหาด้วย น่าจะทำให้อ่านเข้าใจง่ายขึ้นนะครับ (ตอนแรกงงตรงการแปลงตัวอักษรเป็นทศนิยมลอยตัว หรืออะไรสักอย่างนี่ล่ะ :P) คิดว่าไม่น่าจะใช้พื้นที่มากนะ
ตรง Java Hangs When
e.p. Wed, 09/02/2011 - 15:46
In reply to ผมคิดว่าถ้ามีตัวอย่างโค๊ดที่เ by mr_tawan
ตรง Java Hangs When Converting... นั่นมีตัวอย่างครับ แต่ไม่กล้าเอามาใส่ เพราะจะเรียกว่า "เคยเป็นปัญหา" ก็ยังได้ไม่เต็มปาก เชื่อว่าเกินครึ่งโลกตอนนี้ยังไม่ได้ patch ครับ เลยไม่อยากใส่ให้เห็นชัดเกินไปนัก
คือบั๊กมันง่ายแต่ได้ผลมาก
tekkasit Wed, 09/02/2011 - 17:03
คือบั๊กมันง่ายแต่ได้ผลมาก เพราะ parseDouble ด้วย แถมเดี๋ยวนี้อาจจะไม่ใช้การแปลงตรงๆ แต่ข้างใต้เฟรมเวิร์กทั่วไปก็ใช้ BeanUtils หรือตัวแปลงค่าอื่นๆแปลงค่าฟอร์มที่ผู้ใช้กรอกลง Object กันเยอะนะครับ
แบบนี้สงสัยอาจจะมีผลกระทบมากกว่าที่คิดนะ thread มันไม่จบเสียที โดนเยอะๆก็ดาว์นได้ล่ะ
บักตัวเดียวกับใน PHP สินะ
nat3738 Wed, 09/02/2011 - 20:46
บักตัวเดียวกับใน PHP สินะ แต่ทางโน้นแก้ไปเป็นเดือนแล้วนะ
oracle ทำดีแล้วครับ
nextman13 Wed, 09/02/2011 - 22:47
oracle ทำดีแล้วครับ