<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/DiscIO/CompressedBlob.cpp, branch master</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>GCZ: validate while loading</title>
<updated>2026-07-28T07:44:49+00:00</updated>
<author>
<name>Scott Mansell</name>
<email>phiren@gmail.com</email>
</author>
<published>2026-07-26T08:20:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=feeb36bf07a187175232340e2e4d8a00d226fca0'/>
<id>feeb36bf07a187175232340e2e4d8a00d226fca0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>GCZ: Don't trust block_num either</title>
<updated>2026-07-28T07:44:49+00:00</updated>
<author>
<name>Scott Mansell</name>
<email>phiren@gmail.com</email>
</author>
<published>2026-07-26T06:15:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=ffb0e2c59406c485a983098ad5bd85f8b3ae376e'/>
<id>ffb0e2c59406c485a983098ad5bd85f8b3ae376e</id>
<content type='text'>
SectorReader::ReadChunk does do some validation on it, but it only
checks against the original disc size (reported by the GCZ file).
It has no idea how many blocks the header claimed the disc had.

A maliciously crafted GCZ file could trigger read overflows off the end
of the m_block_pointers/m_hashes arrays.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
SectorReader::ReadChunk does do some validation on it, but it only
checks against the original disc size (reported by the GCZ file).
It has no idea how many blocks the header claimed the disc had.

A maliciously crafted GCZ file could trigger read overflows off the end
of the m_block_pointers/m_hashes arrays.
</pre>
</div>
</content>
</entry>
<entry>
<title>GCZ: Don't trust GetBlockCompressedSize</title>
<updated>2026-07-28T07:44:49+00:00</updated>
<author>
<name>Scott Mansell</name>
<email>phiren@gmail.com</email>
</author>
<published>2026-07-26T06:13:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=a3740b5f713eb6a93981690fd52789a02ab8127d'/>
<id>a3740b5f713eb6a93981690fd52789a02ab8127d</id>
<content type='text'>
It comes unverified from the file, and a maliciously crafted file could
trigger not one, but two buffer overflows in the heap.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It comes unverified from the file, and a maliciously crafted file could
trigger not one, but two buffer overflows in the heap.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve usage of std::move and const references parameters</title>
<updated>2026-04-17T10:39:46+00:00</updated>
<author>
<name>Martino Fontana</name>
<email>tinozzo123@gmail.com</email>
</author>
<published>2026-04-06T09:37:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=95dec132030e72b74da6bc46966e4fe5e4e239c0'/>
<id>95dec132030e72b74da6bc46966e4fe5e4e239c0</id>
<content type='text'>
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.

Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.

Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.

Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.

Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unused imports</title>
<updated>2026-01-25T15:12:15+00:00</updated>
<author>
<name>Martino Fontana</name>
<email>tinozzo123@gmail.com</email>
</author>
<published>2026-01-23T20:30:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=a14c88ba67a51b0a563a5fc800cd089e82ffacaf'/>
<id>a14c88ba67a51b0a563a5fc800cd089e82ffacaf</id>
<content type='text'>
Yellow squiggly lines begone!
Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes.
If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed.
The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports.
Not everything is removed, but the cleanup should be substantial enough.
Because this done on Linux, code that isn't used on it is mostly untouched.
(Hopefully no open PR is depending on these imports...)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Yellow squiggly lines begone!
Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes.
If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed.
The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports.
Not everything is removed, but the cleanup should be substantial enough.
Because this done on Linux, code that isn't used on it is mostly untouched.
(Hopefully no open PR is depending on these imports...)
</pre>
</div>
</content>
</entry>
<entry>
<title>Common: Replace Result with C++23's std::expected.</title>
<updated>2026-01-17T22:58:45+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2026-01-08T21:56:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=dffc7a650d06e3f6cdce019ca79098cfd1e2ed15'/>
<id>dffc7a650d06e3f6cdce019ca79098cfd1e2ed15</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Make all BlobReader implementations use DirectIOFile to make CopyReader functionality thread safe.</title>
<updated>2025-11-09T09:08:14+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-10-30T01:26:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=239330017c97fa3f6b4b2670ab570e822d6affb0'/>
<id>239330017c97fa3f6b4b2670ab570e822d6affb0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #13542 from tygyh/DiscIO-Pass-parameters-by-constant-reference</title>
<updated>2025-05-07T20:50:11+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-05-07T20:50:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=921ffe153d943bfeffdef73a153c70b4d0914a90'/>
<id>921ffe153d943bfeffdef73a153c70b4d0914a90</id>
<content type='text'>
DiscIO: Pass parameters by constant reference</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DiscIO: Pass parameters by constant reference</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Pass parameters by constant reference</title>
<updated>2025-04-20T06:26:09+00:00</updated>
<author>
<name>Dr. Dystopia</name>
<email>jonis9898@hotmail.com</email>
</author>
<published>2025-04-19T20:40:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=07ad189b4fdf94d1c8d04ce0f34e3fc2798b85c0'/>
<id>07ad189b4fdf94d1c8d04ce0f34e3fc2798b85c0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Use `= default` to define a trivial destructor</title>
<updated>2025-04-19T15:43:18+00:00</updated>
<author>
<name>Dr. Dystopia</name>
<email>jonis9898@hotmail.com</email>
</author>
<published>2025-04-19T15:43:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=7123fcd19b9244e823dd3c0a259c0ef9a7a78e1c'/>
<id>7123fcd19b9244e823dd3c0a259c0ef9a7a78e1c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
