写点什么

Oracle 发布补丁,修复 Double.parseDouble Bug

  • 2011-02-22
  • 本文字数:843 字

    阅读完需:约 3 分钟

近日,Oracle 发布了一个名为 FPUpdater 的补丁程序,用于修复Java 平台上存在了10 年之久的Bug,恶意用户可以利用该Bug 向服务器发起拒绝服务攻击。时隔这么多年才发布,该补丁程序可谓是打破了记录。

们可以使用该补丁工具手工修复Java 实例,比如Java 服务器。该补丁适用于Oracle 所维护的所有受影响的Java 版本。根据 FPUpdater 发布声明所述,推荐将该 FPUpdater 工具应用于下表所示的 Oracle JRE 版本:

JRE/JDK 版本 说明 J2SE 1.4.2 1.4.2_29 及之前的版本需要升级 J2SE 5.0 5.0u27 及之前的版本需要升级 J2SE for Embedded 5.0 5.0u27 及之前的版本需要升级 Java SE 6 6u23 及之前的版本需要升级 Java SE for Embedded 6 6u23 及之前的版本需要升级 Java Real-Time System 2 2.2u1 及之前的版本需要升级 JRockit R27 R27.6.8 及之前的版本需要升级 JRockit R28 R28.1.1 及之前的版本需要升级 Oracle 还发布了一个针对 OpenJDK 的源代码修复。我们期待Oracle 在未来几天通过Java 的自动更新发布Critical Patch Update,但目前InfoQ 还无法证实这一点。

该Bug 源自于以二进制格式表示某些浮点数时所遇到的困难,在将十进制数2.2250738585072012e-308 转换为双精度的二进制浮点数时,该Bug 会导致Java 运行时和编译器进入到死循环当中。但该Bug 与 Rick Regan 所发现的 PHP 中的类似问题却并不一样。Java 的这个 Bug 是由 Konstantin Prei?er 再次发现并由 Regan 记录下来的。根据 Regan 的分析

正常情况下,该数字会转换为 0x1p-1022,这是 DBL_MIN;但 Java 却出现了问题,导致在 0x1p-1022 和 0x0.fffffffffffffp-1022 之间来回变换,而后者则是最大的低于正常的双精度浮点数。

有人在 2001 年就发现了该问题,但在最初的 Bug 报告中却被归为低优先级的 Bug。它还有可能影响到其他的 Java 版本。比如说,InfoQ 就在 Apple 最新的 OS X 版本的 Java 上重现了该 Bug,但到目前为止,其他 Java 厂商的反应速度却远远落后于 Oracle。

查看英文原文: Oracle 发布补丁,修复 Double.parseDouble Bug

2011-02-22 05:262177
用户头像

发布了 88 篇内容, 共 268.3 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

如何引入TDD实践

顿晓

TDD 4月日更

Go1.16 中模块的新变化

Rayjun

Go 语言

我的 2015-2018 —— 银行软开三年项目回顾

清秋

大前端 重构 鉴权 4月日更

微服务网关:Spring Cloud Gateway —— Zuul

程序员架构进阶

微服务 网关 28天写作 4月日更

线上PHP服务故障排查之路

风翱

PHP-FPM 线上事故 4月日更

CIAM的7个基本原则

龙归科技

安全性 用户 业务增长

一个DNS引发的“血案”

穿过生命散发芬芳

Wireshark 数据包分析 4月日更

【得物技术】算法入门一:算法的好坏?复杂度告诉你

得物技术

算法 时间复杂度 大前端 入门 复杂度

那束漂亮的手捧花

小天同学

爱情 4月日更 幸福 传递

浅论结构体与联合体

Integer

c

使用FFmpeg开发的那些事

Bob

音视频 ffmpeg 开源文化

平面设计之PS(中)

空城机

PhotoShop ps 4月日更

CI/CD之基于Jenkins的发布平台实践

小江

DevOps jenkins CI/CD 发布流程

spring的IOC使用以及原理

邱学喆

spring ioc 对象创建 属性注入

在业务高峰期拔掉服务器电源是一种怎样的体验?

冰河

分布式 微服务 数据恢复 MySQL 高可用 异常处理

Android音视频 - EGL源码解析以及C++实现

LoveYFan

android 音视频 OpenGL ES

新华三“云屏”发布:云屏融合重塑工作体验,全力构建智“会”时代

DT极客

JavaScript小笔记

赫鲁小夫

4月日更

翻译:《实用的Python编程》08_01_Testing

codists

Python

Redis 最后一课

escray

redis 学习 极客时间 Redis 核心技术与实战 4月日更

聊聊云厂商的指标监控组件

耳东@Erdong

Prometheus 4月日更 #Grafana

Android音视频 - MediaCodec编解码音视频

LoveYFan

android 音视频 编解码

调整云计算资源大小时要避免的10个错误

云计算

三翼鸟的羽翼下,人诗意地栖居在智能生活里

脑极体

你真的懂反馈吗?

石云升

28天写作 职场经验 管理经验 4月日更

新的物联网技术应用有哪些

cdhqyj

互联网 物联网 通信 计算机

聪明人的训练(九)

Changing Lin

4月日更

游戏数据埋点

data_y

游戏 数据埋点 游戏数据分析 埋点定义

Github限时开放!阿里内部强推的《微服务容器化参考指南》简直太牛了!

Java架构之路

Java 程序员 架构 面试 编程语言

经典递归

山@支

深入浅出 LVS 负载均衡系列(一):NAT、FULLNAT 模型原理

UCloud技术

负载均衡

Oracle发布补丁,修复Double.parseDouble Bug_Java_Charles Humble_InfoQ精选文章