<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/missing/dtoa.c, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Fix a possible memory leak in dtoa</title>
<updated>2025-12-24T05:05:41+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-12-24T02:30:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=44693ee32990fdd609e91ebb2970b3110b3f08e5'/>
<id>44693ee32990fdd609e91ebb2970b3110b3f08e5</id>
<content type='text'>
Fix GH-15061
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix GH-15061
</pre>
</div>
</content>
</entry>
<entry>
<title>dtoa.c: Check integer underflow</title>
<updated>2025-09-10T07:45:25+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-09-10T03:57:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=624538ba927b3d5fa021af0df3c8c29b11ef14f7'/>
<id>624538ba927b3d5fa021af0df3c8c29b11ef14f7</id>
<content type='text'>
Reported at https://hackerone.com/reports/3288162

This underflow does not occur in Ruby because:

* This function is `static` and not accessible other than from ruby
  internal.

* Ruby uses mode 0 when calling this function directly.

* For `%f` in vsnprintf.c using mode 3, this parameter comes from the
  precision, but negative precision is meaningless and ignored.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reported at https://hackerone.com/reports/3288162

This underflow does not occur in Ruby because:

* This function is `static` and not accessible other than from ruby
  internal.

* Ruby uses mode 0 when calling this function directly.

* For `%f` in vsnprintf.c using mode 3, this parameter comes from the
  precision, but negative precision is meaningless and ignored.
</pre>
</div>
</content>
</entry>
<entry>
<title>dtoa.c: Check memory allocation failures</title>
<updated>2025-09-10T06:34:30+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-09-09T15:52:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f047174cf16c42843807c8430d18a83d2aa6175e'/>
<id>f047174cf16c42843807c8430d18a83d2aa6175e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>dtoa.c: Extract macro to update 5powers Bigint cache atomically</title>
<updated>2025-09-10T06:34:30+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-09-09T15:26:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d0c966adcd8cd04830e75c6b720c0c38427b3419'/>
<id>d0c966adcd8cd04830e75c6b720c0c38427b3419</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>dtoa.c: Add shortcut if arguments are zero</title>
<updated>2025-09-10T06:34:29+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-09-09T15:23:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0887d82406c9a9701acd235e8f510480cea9f218'/>
<id>0887d82406c9a9701acd235e8f510480cea9f218</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove spinlock in dtoa's Balloc, use xmalloc</title>
<updated>2025-04-07T23:56:44+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-03-27T01:23:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b3b1d7b2952037727abfa66236d43e434003524a'/>
<id>b3b1d7b2952037727abfa66236d43e434003524a</id>
<content type='text'>
The spinlock here performs poorly when there are multiple Ractors. The
improvement on single threaded performance doesn't seem that
significant, so I think we should just use malloc.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The spinlock here performs poorly when there are multiple Ractors. The
improvement on single threaded performance doesn't seem that
significant, so I think we should just use malloc.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #20705] Update `strtod` implementation</title>
<updated>2024-10-05T14:29:42+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2024-09-05T13:08:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d17edf3a170b733356836353508319443d12c53c'/>
<id>d17edf3a170b733356836353508319443d12c53c</id>
<content type='text'>
The absence of either the integer or fractional part should be
allowed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The absence of either the integer or fractional part should be
allowed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make dtoa.c buildable alone</title>
<updated>2023-07-14T09:35:23+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2023-07-14T05:33:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bc8cc68aeff7ae3be1353f4077633cda4d30b54b'/>
<id>bc8cc68aeff7ae3be1353f4077633cda4d30b54b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix dtoa buffer overrun</title>
<updated>2022-04-12T12:30:49+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2021-06-30T21:39:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d0a822eec524522d81ffc7da2bb1baf906b0318a'/>
<id>d0a822eec524522d81ffc7da2bb1baf906b0318a</id>
<content type='text'>
https://hackerone.com/reports/1248108
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://hackerone.com/reports/1248108
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed race in dtoa [Bug #17612]</title>
<updated>2021-02-10T10:44:47+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2021-02-10T06:24:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3acc81d9e41b18380b9e0168fe2b5e5e0c727256'/>
<id>3acc81d9e41b18380b9e0168fe2b5e5e0c727256</id>
<content type='text'>
Fixed the race condition when replacing `freelist` entry with its
chained next element.  At acquiring an entry, hold the entry once
with the special value, then release by replacing it with the next
element again after acquired.  If another thread is holding the
same entry at that time, spinning until the entry gets released.

Co-Authored-By: Koichi Sasada &lt;ko1@atdot.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed the race condition when replacing `freelist` entry with its
chained next element.  At acquiring an entry, hold the entry once
with the special value, then release by replacing it with the next
element again after acquired.  If another thread is holding the
same entry at that time, spinning until the entry gets released.

Co-Authored-By: Koichi Sasada &lt;ko1@atdot.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
