<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/MdeModulePkg/Library/FileExplorerLib, branch master</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-07-30T19:10:07+00:00</updated>
<entry>
<title>MdeModulePkg: Fix missing NULL tests</title>
<updated>2026-07-30T19:10:07+00:00</updated>
<author>
<name>Aaron Pop</name>
<email>aaronpop@microsoft.com</email>
</author>
<published>2025-10-23T19:57:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=a1aab535ce2a009e91b7b93490a856cc7bf25e27'/>
<id>urn:sha1:a1aab535ce2a009e91b7b93490a856cc7bf25e27</id>
<content type='text'>
https://github.com/github/codeql/blob/codeql-cli-2.7.3/cpp/ql/src/Critical/MissingNullTest.qhelp

For items which allocate memory, or get a pointer from another
structure, it is important to validate that the pointers
are not null before they are dereferenced.

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Replace include guards with #pragma once</title>
<updated>2026-02-23T21:01:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2026-02-03T18:48:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7a934d0befca7d10f361c76af6d2fcb6eb48c835'/>
<id>urn:sha1:7a934d0befca7d10f361c76af6d2fcb6eb48c835</id>
<content type='text'>
Replace traditional `#ifndef`/`#define`/`#endif` include guards with
`#pragma` once.

`#pragma once` is a widely supported preprocessor directive that
prevents header files from being included multiple times. It is
supported by all toolchains used to build edk2: GCC, Clang/LLVM, and
MSVC.

Compared to macro-based include guards, `#pragma once`:

- Eliminates the risk of macro name collisions or copy/paste errors
  where two headers inadvertently use the same guard macro.
- Eliminate inconsistency in the way include guard macros are named
  (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.).
- Reduces boilerplate (three lines replaced by one).
- Avoids polluting the macro namespace with guard symbols.
- Can improve build times as the preprocessor can skip re-opening the
  file entirely, rather than re-reading it to find the matching
  `#endif` ("multiple-include optimization").
  - Note that some compilers may already optimize traditional include
    guards, by recognzining the idiomatic pattern.

This change is made acknowledging that overall portability of the
code will technically be reduced, as `#pragma once` is not part of the
C/C++ standards.

However, this is considered acceptable given:

1. edk2 already defines a subset of supported compilers in
   BaseTools/Conf/tools_def.template, all of which have supported
   `#pragma once` for over two decades.
2. There have been concerns raised to the project about inconsistent
   include guard naming and potential macro collisions.

Approximate compiler support dates:

- MSVC: Supported since Visual C++ 4.2 (1996)
- GCC: Supported since 3.4 (2004)
  (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html)
- Clang (LLVM based): Since initial release in 2007

Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Fix EFI_SUCCESS typos</title>
<updated>2025-06-12T17:50:45+00:00</updated>
<author>
<name>Gao Qihang</name>
<email>gaoqihang@loongson.cn</email>
</author>
<published>2025-06-06T02:42:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c4bc60b2b721d4297443db59e2653fb4a4e888cf'/>
<id>urn:sha1:c4bc60b2b721d4297443db59e2653fb4a4e888cf</id>
<content type='text'>
EFI_SUCESS -&gt; EFI_SUCCESS
EFI_SUCESSS -&gt; EFI_SUCCESS

Signed-off-by: Gao Qihang &lt;gaoqihang@loongson.cn&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Fix conditionally uninitialized variables</title>
<updated>2023-04-03T15:29:08+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2022-11-08T20:24:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=07251f3c6a9aff09eb2778f8d5db51348fca8e18'/>
<id>urn:sha1:07251f3c6a9aff09eb2778f8d5db51348fca8e18</id>
<content type='text'>
Fixes CodeQL alerts for CWE-457:
https://cwe.mitre.org/data/definitions/457.html

Cc: Dandan Bi &lt;dandan.bi@intel.com&gt;
Cc: Eric Dong &lt;eric.dong@intel.com&gt;
Cc: Erich McMillan &lt;emcmillan@microsoft.com&gt;
Cc: Guomin Jiang &lt;guomin.jiang@intel.com&gt;
Cc: Jian J Wang &lt;jian.j.wang@intel.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Michael Kubacki &lt;mikuback@linux.microsoft.com&gt;
Cc: Ray Ni &lt;ray.ni@intel.com&gt;
Cc: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Co-authored-by: Erich McMillan &lt;emcmillan@microsoft.com&gt;
Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Reviewed-by: Oliver Smith-Denny &lt;osd@smith-denny.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Apply uncrustify changes</title>
<updated>2021-12-07T17:24:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2021-12-05T22:54:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=1436aea4d5707e672672a11bda72be2c63c936c3'/>
<id>urn:sha1:1436aea4d5707e672672a11bda72be2c63c936c3</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737

Apply uncrustify changes to .c/.h files in the MdeModulePkg package

Cc: Andrew Fish &lt;afish@apple.com&gt;
Cc: Leif Lindholm &lt;leif@nuviainc.com&gt;
Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Change OPTIONAL keyword usage style</title>
<updated>2021-12-07T17:24:28+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2021-12-03T02:00:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e3917e22e769898bb0d08d0112e768437f1ff9fb'/>
<id>urn:sha1:e3917e22e769898bb0d08d0112e768437f1ff9fb</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3760

Update all use of ', OPTIONAL' to ' OPTIONAL,' for function params.

Cc: Andrew Fish &lt;afish@apple.com&gt;
Cc: Leif Lindholm &lt;leif@nuviainc.com&gt;
Cc: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Fix various typos</title>
<updated>2021-05-17T02:10:31+00:00</updated>
<author>
<name>Rebecca Cran</name>
<email>rebecca@nuviainc.com</email>
</author>
<published>2021-05-05T15:04:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e0cb5e1814a67bb12dd476a72d1698350633bcbb'/>
<id>urn:sha1:e0cb5e1814a67bb12dd476a72d1698350633bcbb</id>
<content type='text'>
Fix various typos throughout MdeModulePkg.

Signed-off-by: Rebecca Cran &lt;rebecca@nuviainc.com&gt;
Reviewed-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Reviewed-by: Hao A Wu &lt;hao.a.wu@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/FileExplorerLib: Add return value check</title>
<updated>2021-01-15T01:08:45+00:00</updated>
<author>
<name>wenyi,xie via groups.io</name>
<email>xiewenyi2=huawei.com@groups.io</email>
</author>
<published>2021-01-12T07:06:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=014b9850f2a33ae402b87c46268f4d98395d5d59'/>
<id>urn:sha1:014b9850f2a33ae402b87c46268f4d98395d5d59</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3113
According to FAT specification, the length of file path
should not larger than 260. When the length exceed 260,
function FatLocateOFile will return EFI_INVALID_PARAMETER
and the parameter FileHandle will be NULL. Then on the
top-level function?an exception happens when the NULL
pointer is passed and be used.
So adding return value check after calling
LibGetFileHandleFromMenu, if return value is not success,
stop calling LibFindFiles.

Cc: Jian J Wang &lt;jian.j.wang@intel.com&gt;
Cc: Hao A Wu &lt;hao.a.wu@intel.com&gt;
Cc: Dandan Bi &lt;dandan.bi@intel.com&gt;
Cc: Eric Dong &lt;eric.dong@intel.com&gt;
Signed-off-by: Wenyi Xie &lt;xiewenyi2@huawei.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Reviewed-by: Dandan Bi &lt;dandan.bi@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/FileExplorerLib: remove redundant null pointer check</title>
<updated>2020-12-04T05:56:09+00:00</updated>
<author>
<name>wenyi xie</name>
<email>xiewenyi2=huawei.com@groups.io</email>
</author>
<published>2020-11-26T01:50:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c02bdb276baf8c37a42c87dff68fb0d3f264b124'/>
<id>urn:sha1:c02bdb276baf8c37a42c87dff68fb0d3f264b124</id>
<content type='text'>
If "Info" is a valid pointer to an EFI_FILE_SYSTEM_VOLUME_LABEL
structure, then "Info-&gt;VolumeLabel" denotes a valid array object.
When the "Info-&gt;VolumeLabel" expression is evaluated, as seen in
the LibFindFileSystem(), it is implicitly converted to
(&amp;Info-&gt;VolumeLabel[0]). Because the object described by the
expression (Info-&gt;VolumeLabel[0]) is a valid CHAR16 object, its
address can never compare equal to NULL. Therefore, the condition
(Info-&gt;VolumeLabel == NULL) will always evaluate to FALSE.
Substitute the constant FALSE into the "if" statement, and
simplify the resultant code (eliminate the dead branch).

Cc: Jian J Wang &lt;jian.j.wang@intel.com&gt;
Cc: Hao A Wu &lt;hao.a.wu@intel.com&gt;
Cc: Dandan Bi &lt;dandan.bi@intel.com&gt;
Cc: Eric Dong &lt;eric.dong@intel.com&gt;
Signed-off-by: Wenyi Xie &lt;xiewenyi2@huawei.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Reviewed-by: Laszlo Ersek &lt;lersek@redhat.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/FileExplorer: Set Handle to NULL after uninstall protocol</title>
<updated>2019-04-28T01:32:42+00:00</updated>
<author>
<name>Dandan Bi</name>
<email>dandan.bi@intel.com</email>
</author>
<published>2019-04-23T06:23:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=5a4f3a3453e7689256058eada880791c3d8171f5'/>
<id>urn:sha1:5a4f3a3453e7689256058eada880791c3d8171f5</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1728

Currently Emulator meets ASSERT when enter setup-&gt;Continue-&gt;enter setup.
When re-enter setup, the FeDriverHandle in FileExplorerLib Constructor
is not NULL which cause InstallMultipleProtocolInterfaces failure,
then ASSERT. So here set FeDriverHandle to NULL after uninstalling
protocols on it in the Destructor function to avoid this issue.

Cc: Liming Gao &lt;liming.gao@intel.com&gt;
Cc: Eric Dong &lt;eric.dong@intel.com&gt;
Cc: Hao Wu &lt;hao.a.wu@intel.com&gt;
Cc: Ruiyu Ni &lt;ruiyu.ni@intel.com&gt;
Signed-off-by: Dandan Bi &lt;dandan.bi@intel.com&gt;
Reviewed-by: Eric Dong &lt;eric.dong@intel.com&gt;
</content>
</entry>
</feed>
