<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/DiscIO/NANDImporter.cpp, branch master</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<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>Improve NAND import progress dialog</title>
<updated>2026-04-04T21:02:45+00:00</updated>
<author>
<name>Tillmann Karras</name>
<email>tilkax@gmail.com</email>
</author>
<published>2026-04-03T22:50:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=f06aef4f8382d258e16bac2ea8a19aa48dda72a0'/>
<id>f06aef4f8382d258e16bac2ea8a19aa48dda72a0</id>
<content type='text'>
Now with cancel button and an actual progress bar. For simplicity, we do
two passes on the progress bar, one for loading the NAND into memory and
one for extracting it. The user directory is likely on an SSD, making
the extraction pass invisibly fast.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now with cancel button and an actual progress bar. For simplicity, we do
two passes on the progress bar, one for loading the NAND into memory and
one for extracting it. The user directory is likely on an SSD, making
the extraction pass invisibly fast.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix various typos and spelling mistakes</title>
<updated>2026-01-17T19:11:38+00:00</updated>
<author>
<name>Sintendo</name>
<email>3380580+Sintendo@users.noreply.github.com</email>
</author>
<published>2026-01-17T18:02:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1e0473e44f5e21558d75b0121bd935bb50825c26'/>
<id>1e0473e44f5e21558d75b0121bd935bb50825c26</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 functions constant</title>
<updated>2025-05-16T17:11:39+00:00</updated>
<author>
<name>Dr. Dystopia</name>
<email>jonis9898@hotmail.com</email>
</author>
<published>2025-04-19T07:58:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=9dfcbcecff93a3419e09a9bfbb61f91f6f0bbf98'/>
<id>9dfcbcecff93a3419e09a9bfbb61f91f6f0bbf98</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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>Modernize `std::search` with ranges</title>
<updated>2024-10-18T01:38:34+00:00</updated>
<author>
<name>mitaclaw</name>
<email>140017135+mitaclaw@users.noreply.github.com</email>
</author>
<published>2024-09-22T07:00:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=4fde0f2868212afc216cd9324af8d5efcc282887'/>
<id>4fde0f2868212afc216cd9324af8d5efcc282887</id>
<content type='text'>
The new return value is `std::ranges::subrange`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The new return value is `std::ranges::subrange`.
</pre>
</div>
</content>
</entry>
<entry>
<title>NANDImporter: Check data bounds.</title>
<updated>2023-04-02T01:45:34+00:00</updated>
<author>
<name>Admiral H. Curtiss</name>
<email>pikachu025@gmail.com</email>
</author>
<published>2023-04-01T02:19:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=c97c80d1cbdd34b70290fa8b4aa70f983796cb7a'/>
<id>c97c80d1cbdd34b70290fa8b4aa70f983796cb7a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement hw accelerated AES</title>
<updated>2022-08-01T17:00:42+00:00</updated>
<author>
<name>Shawn Hoffman</name>
<email>godisgovernment@gmail.com</email>
</author>
<published>2022-07-27T08:51:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=46ad8b9d68b7eff720a6f33e6029ddd36ab8edaa'/>
<id>46ad8b9d68b7eff720a6f33e6029ddd36ab8edaa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
