Tags:
Node Thumbnail

ออราเคิลออกประกาศ Security Alert for CVE-2010-4476 พร้อมโปรแกรมแก้ไขบัก
ซึ่งเป็นบักในส่วนการแปลงข้อความตัวอักษรเลขฐาน 10 ไปเป็นเลขฐาน 2 จำนวนจริงแบบความละเอียดสองเท่า (double-precision binary floating-point) ที่เมื่อเจอเลข 2.2250738585072012e-308 จะวนติดอยู่ในลูปและไม่สามารถทำงานคำสั่งถัดไปได้

บักนี้ร้ายขนาดไหน? ยกตัวอย่างง่ายๆ ก็ทำให้โปรแกรมอย่าง "javac" ค้างได้ รายละเอียดลองอ่าน "Java Hangs When Converting 2.2250738585072012e-308" ดู

Get latest news from Blognone

Comments

By: mr_tawan
ContributoriPhoneAndroidWindows
on 9 February 2011 - 15:42 #257579
mr_tawan's picture

ผมคิดว่าถ้ามีตัวอย่างโค๊ดที่เคยเป็นปัญหาด้วย น่าจะทำให้อ่านเข้าใจง่ายขึ้นนะครับ (ตอนแรกงงตรงการแปลงตัวอักษรเป็นทศนิยมลอยตัว หรืออะไรสักอย่างนี่ล่ะ :P) คิดว่าไม่น่าจะใช้พื้นที่มากนะ


  • 9tawan.net บล็อกส่วนตัวฮับ
By: e.p.
ContributorAndroid
on 9 February 2011 - 15:46 #257581 Reply to:257579
e.p.'s picture

ตรง Java Hangs When Converting... นั่นมีตัวอย่างครับ แต่ไม่กล้าเอามาใส่ เพราะจะเรียกว่า "เคยเป็นปัญหา" ก็ยังได้ไม่เต็มปาก เชื่อว่าเกินครึ่งโลกตอนนี้ยังไม่ได้ patch ครับ เลยไม่อยากใส่ให้เห็นชัดเกินไปนัก

By: tekkasit
ContributorAndroidWindowsIn Love
on 9 February 2011 - 17:03 #257598
tekkasit's picture

คือบั๊กมันง่ายแต่ได้ผลมาก เพราะ parseDouble ด้วย แถมเดี๋ยวนี้อาจจะไม่ใช้การแปลงตรงๆ แต่ข้างใต้เฟรมเวิร์กทั่วไปก็ใช้ BeanUtils หรือตัวแปลงค่าอื่นๆแปลงค่าฟอร์มที่ผู้ใช้กรอกลง Object กันเยอะนะครับ

แบบนี้สงสัยอาจจะมีผลกระทบมากกว่าที่คิดนะ thread มันไม่จบเสียที โดนเยอะๆก็ดาว์นได้ล่ะ

By: nat3738
ContributorAndroidRed HatUbuntu
on 9 February 2011 - 20:46 #257635

บักตัวเดียวกับใน PHP สินะ แต่ทางโน้นแก้ไปเป็นเดือนแล้วนะ

By: nextman13
AndroidBlackberryUbuntuWindows
on 9 February 2011 - 22:47 #257679

oracle ทำดีแล้วครับ