<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/DiscIO, branch 2606</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>VolumeVerifier: Remove SystemNotAvailable</title>
<updated>2026-06-22T06:36:50+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-06-22T06:34:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=53dad6f23012babf65a52764715cdf7fc5f0638c'/>
<id>53dad6f23012babf65a52764715cdf7fc5f0638c</id>
<content type='text'>
We had some code in VolumeVerifier to catch the error message that
Redump.org used to show when trying to access the Wii datfile without
logging in. This restriction was removed from Redump.org around the
start of 2022, and the code has been unnecessary ever since.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We had some code in VolumeVerifier to catch the error message that
Redump.org used to show when trying to access the Wii datfile without
logging in. This restriction was removed from Redump.org around the
start of 2022, and the code has been unnecessary ever since.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't send Dolphin version in user agent to Redump</title>
<updated>2026-06-22T06:36:44+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-06-22T06:29:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=47040a183428e8e6e2a5c8c28d8aa0b4d632d1cd'/>
<id>47040a183428e8e6e2a5c8c28d8aa0b4d632d1cd</id>
<content type='text'>
When we added the RetroAchievements integration, we had a discussion
about whether sending version information in the user agent was fine
from a privacy standpoint. We reached the conclusion that it was okay,
but it was conditional on the website having a privacy policy. Neither
incarnation of Redump has that, and Redump also never asked us to send
version information like RetroAchievements did, so let's use a user
agent that just says "Dolphin" when connecting to Redump.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When we added the RetroAchievements integration, we had a discussion
about whether sending version information in the user agent was fine
from a privacy standpoint. We reached the conclusion that it was okay,
but it was conditional on the website having a privacy policy. Neither
incarnation of Redump has that, and Redump also never asked us to send
version information like RetroAchievements did, so let's use a user
agent that just says "Dolphin" when connecting to Redump.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use redump.info instead of redump.org</title>
<updated>2026-06-22T06:28:51+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-06-22T06:24:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=d202fd07d2a0a244fa43941fd80ec9aa4fa05476'/>
<id>d202fd07d2a0a244fa43941fd80ec9aa4fa05476</id>
<content type='text'>
All the staff of Redump (except the absentee sysadmin) have decided to
start a new version of the website at redump.info. It has every disc
from the old site, it has HTTPS, it isn't buckling under the load of AI
scrapers, and moving forward, all adding and verifying of discs is going
to be happening on the new website only. Let's move over.

I've taken the unusual step of updating the translation files manually.
This is because we're very close to a release and because the change is
simple enough that I feel confident about making the change to languages
I don't speak. (I double checked that the Korean translation doesn't
ever follow "Redump.org" by a particle that has a different form
depending on whether there's a final consonant.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All the staff of Redump (except the absentee sysadmin) have decided to
start a new version of the website at redump.info. It has every disc
from the old site, it has HTTPS, it isn't buckling under the load of AI
scrapers, and moving forward, all adding and verifying of discs is going
to be happening on the new website only. Let's move over.

I've taken the unusual step of updating the translation files manually.
This is because we're very close to a release and because the change is
simple enough that I feel confident about making the change to languages
I don't speak. (I double checked that the Korean translation doesn't
ever follow "Redump.org" by a particle that has a different form
depending on whether there's a final consonant.)
</pre>
</div>
</content>
</entry>
<entry>
<title>NANDImporter: Abort extraction if a NAND FST entry is visited more than once</title>
<updated>2026-06-04T16:48:19+00:00</updated>
<author>
<name>Admiral H. Curtiss</name>
<email>pikachu025@gmail.com</email>
</author>
<published>2026-06-04T15:41:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=29f1bc4d4c079610b3c9c83930733df856c6f61f'/>
<id>29f1bc4d4c079610b3c9c83930733df856c6f61f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Prevent path traversal in NANDImporter::ProcessEntry</title>
<updated>2026-05-30T09:51:14+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-05-30T09:28:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=2faa9760d3e689ceb5b92f71e29a4a869b9f50f9'/>
<id>2faa9760d3e689ceb5b92f71e29a4a869b9f50f9</id>
<content type='text'>
Reported by MrSynAckster. A specifically crafted NAND dump could use
path traversal to overwrite files on the host file system.

This is also an accuracy fix for importing NAND dumps that contain
file names that Dolphin is supposed to escape. Some games' save files
are affected.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reported by MrSynAckster. A specifically crafted NAND dump could use
path traversal to overwrite files on the host file system.

This is also an accuracy fix for importing NAND dumps that contain
file names that Dolphin is supposed to escape. Some games' save files
are affected.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rework NANDImporter::GetPath slash handling</title>
<updated>2026-05-30T09:51:14+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-05-30T09:26:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=3abadcd5071ea1acbc5748deb57f21b03c7c5536'/>
<id>3abadcd5071ea1acbc5748deb57f21b03c7c5536</id>
<content type='text'>
GetPath has two special cases where it doesn't add a slash.

The first is for the root entry's special name "/". The next commit will
be neater if we can skip calling GetPath for the root entry, because '/'
is one of the characters that Common::EscapeFileName replaces with an
escape sequence. Let's check for entry number 0 instead.

The second is for parent paths that already end in a slash. There's no
actual need to check for this - double slashes are harmless, and for
comparison, NANDImporter::ExtractCertificates already appends slashes
without checking if there already is one. Let's remove this check.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GetPath has two special cases where it doesn't add a slash.

The first is for the root entry's special name "/". The next commit will
be neater if we can skip calling GetPath for the root entry, because '/'
is one of the characters that Common::EscapeFileName replaces with an
escape sequence. Let's check for entry number 0 instead.

The second is for parent paths that already end in a slash. There's no
actual need to check for this - double slashes are harmless, and for
comparison, NANDImporter::ExtractCertificates already appends slashes
without checking if there already is one. Let's remove this check.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14613 from JosJuice/wad-tmd-checks</title>
<updated>2026-05-11T20:59:40+00:00</updated>
<author>
<name>Admiral H. Curtiss</name>
<email>pikachu025@gmail.com</email>
</author>
<published>2026-05-11T20:59:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=8bf1f8970a5a4b43fa86c691164a9a7c2c9680f3'/>
<id>8bf1f8970a5a4b43fa86c691164a9a7c2c9680f3</id>
<content type='text'>
DiscIO: Add extra IsValid checks for VolumeWAD::m_tmd</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DiscIO: Add extra IsValid checks for VolumeWAD::m_tmd</pre>
</div>
</content>
</entry>
<entry>
<title>VolumeVerifier: Add extra validity checks for ticket and TMD</title>
<updated>2026-04-20T18:26:31+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-04-20T18:05:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=a992245aa2c73f1fb94bf30e39d76a3487668546'/>
<id>a992245aa2c73f1fb94bf30e39d76a3487668546</id>
<content type='text'>
This fixes VolumeVerifier potentially calling TMDReader::GetIOSId for
invalid TMDs.

VolumeVerifier also has a call to TMDReader::GetContent that doesn't
check if the TMD is valid. In practice, this can't get called with an
invalid TMD because the previous commit made it so GetContentOffsets
returns an empty vector if the TMD is invalid, but I've added a check
inside TMDReader::GetContent just to be on the safe side.

I also made VolumeVerifier show a specifically worded problem if the
ticket or TMD is invalid. Before, invalid TMDs in Wii discs and WADs
and invalid tickets in WADs would show a more generic problem.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes VolumeVerifier potentially calling TMDReader::GetIOSId for
invalid TMDs.

VolumeVerifier also has a call to TMDReader::GetContent that doesn't
check if the TMD is valid. In practice, this can't get called with an
invalid TMD because the previous commit made it so GetContentOffsets
returns an empty vector if the TMD is invalid, but I've added a check
inside TMDReader::GetContent just to be on the safe side.

I also made VolumeVerifier show a specifically worded problem if the
ticket or TMD is invalid. Before, invalid TMDs in Wii discs and WADs
and invalid tickets in WADs would show a more generic problem.
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Add extra IsValid checks for VolumeWAD::m_tmd</title>
<updated>2026-04-20T18:18:36+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-04-20T17:17:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=97fff931fde1e6d2f988cc7e6abed5234850b18c'/>
<id>97fff931fde1e6d2f988cc7e6abed5234850b18c</id>
<content type='text'>
Plus an IsValid check inside TMDReader::GetContents, which is called by
VolumeWAD.

Fixes https://bugs.dolphin-emu.org/issues/14032.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Plus an IsValid check inside TMDReader::GetContents, which is called by
VolumeWAD.

Fixes https://bugs.dolphin-emu.org/issues/14032.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace `find(x) != npos` with `contains(x)` - Core</title>
<updated>2026-04-20T07:36:08+00:00</updated>
<author>
<name>Dr. Dystopia</name>
<email>jonis9898@hotmail.com</email>
</author>
<published>2025-04-12T06:11:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=9ae9c129383c71fc8f943d56a5f5d65b8d5c7078'/>
<id>9ae9c129383c71fc8f943d56a5f5d65b8d5c7078</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
